gpt4 book ai didi

ruby-on-rails - Mongoid Twitter 风格的关注,无法为关系数组指定标准/条件

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:32 24 4
gpt4 key购买 nike

我无计可施地试图处理这些错误。基本上,我创建了以下用户和关系模式,使用 Mongoid 来处理我的数据库。这似乎是页面底部示例的近抄本 here .我正在尝试调用以下任何一个:

user1.relationships.find(:all, :conditions => {:rel_user => user_in_question, :rel_type => "following" })
user1.relationships.all(:conditions => {:rel_user => user_in_question, :rel_type => "following" })
user1.relationships.where(:rel_type => "following")
user1.relationships.following #with a named scope

这些似乎都只返回整个关系数组;他们不按标准搜索。 find() 方法也会抛出一个错误,指出它只能接受 1 个参数。 im_following?方法始终返回 true。

我不确定是在线发布代码还是从要点发布代码更好,所以这里是要点:

user.rb
user_follow_spec.rb
relationship.rb

如有任何帮助,我将不胜感激。

最佳答案

Rockmanioff,我也遇到了同样的问题。你可能想看看 this以及。 Mongoid 计划在其发布候选版本中支持此功能。现在,我们必须手动执行操作。

class User
include Mongoid::Document
include Mongoid::Timestamps

references_many :fans, :stored_as => :array, :class_name => 'User', :inverse_of => :fan_of
references_many :fan_of, :stored_as => :array, :class_name => 'User', :inverse_of => :fans

def become_fan_of user
fan_of << user
self.save

user.fans << self
user.save
end

def is_a_fan? user
fan_of_ids.include? user.id
end

def unfan user
fan_of_ids.delete user.id
self.save

user.fan_ids.delete self.id
user.save
end

...
end

在控制台中,您可以:

User.first.become_fan_of User.last
User.first.is_a_fan? User.last
User.first.unfan User.last

在您的情况下,您可能希望将“followers/following respectively”替换为“fan/fan_of”。希望这会有所帮助。

关于ruby-on-rails - Mongoid Twitter 风格的关注,无法为关系数组指定标准/条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com