Ruby on rails 未定义的方法'join';至于&引用;:我的状态提要上的字符串

Ruby on rails 未定义的方法'join';至于&引用;:我的状态提要上的字符串,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,因此,我一直在根据您所关注的成员(也在指南中)制作状态提要,但我在“join”上遇到了一个未定义的方法错误,我在代码中没有看到这个错误 这是我的模型中的内容(或我的microposts模型中的内容) 我猜范围:from_members\u后跟替换了注释掉的函数,这就是我注释掉它的原因 堆栈跟踪在以下位置出现错误: app/models/tattoo.rb:50:in `followed_by' - Error 1 app/models/tattoo.rb:43:in `block

因此,我一直在根据您所关注的成员(也在指南中)制作状态提要,但我在“join”上遇到了一个
未定义的方法
错误,我在代码中没有看到这个错误

这是我的模型中的内容(或我的microposts模型中的内容)

我猜范围
:from_members\u后跟
替换了注释掉的函数,这就是我注释掉它的原因

堆栈跟踪在以下位置出现错误:

    app/models/tattoo.rb:50:in `followed_by' - Error 1
    app/models/tattoo.rb:43:in `block in <class:Tattoo>' - Error 2
    app/models/member.rb:90:in `feed' - Error 3
    app/controllers/members_controller.rb:15:in `home'
app/models/纹身.rb:50:in`后跟'-错误1
app/models/纹身.rb:43:in'block-in'-错误2
app/models/member.rb:90:in'feed'-错误3
app/controllers/members\u controller.rb:15:in'home'
Ha!我想我明白了

首先:不需要额外的作用域,它只调用
后面的
函数。第二:作用域的参数应该是
成员.id
,然后输入完整的成员

您可以通过两种方式解决此问题。或者,在
member.rb中

def feed
  Tattoo.followed_by(self.id)
end
或者,在
纹身.rb
中写入:

def self.followed_by(member)
  following_ids = %(SELECT followed_id FROM relationships WHERE follower_id = :member_id)
  where("member_id IN (#{following_ids}) OR member_id = :member_id", { :member_id => member.id })
end

希望这能有所帮助。

您有发生错误的堆栈跟踪吗?我刚刚添加了它并标记了错误行
def self.followed_by(member)
  following_ids = %(SELECT followed_id FROM relationships WHERE follower_id = :member_id)
  where("member_id IN (#{following_ids}) OR member_id = :member_id", { :member_id => member.id })
end