Ruby on rails 从comment.rb向answers\u watchers表添加用户
我在Rails应用程序的Answer.rb模型中有以下代码。用户发布答案(问题)后,他们会被添加到一个列表中,以便在答案上发布评论时得到通知 答案.rbRuby on rails 从comment.rb向answers\u watchers表添加用户,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在Rails应用程序的Answer.rb模型中有以下代码。用户发布答案(问题)后,他们会被添加到一个列表中,以便在答案上发布评论时得到通知 答案.rb has_and_belongs_to_many :watchers, :join_table => "answer_watchers", :class_name => "User" after_create :creator_watches_me private def creator_watches_me
has_and_belongs_to_many :watchers, :join_table => "answer_watchers", :class_name => "User"
after_create :creator_watches_me
private
def creator_watches_me
self.watchers << user
end
在Answer.rb模型中,我有这个
def add_to_watchers(user)
self.watchers << user
end
def添加到观察者(用户)
self.watchers正如我所想,您正在调用Answer
类上的add_to_watchers
,而不是相关的Answer实例,并且该方法不是由类
类实现的。这就是为什么会出现错误
我猜你从评论到回答都有关联,比如:
belongs_to :answer
在这种情况下,您可以使用Answer
引用相关的答案实例,因此请尝试:
def creator_watches_me
answer.add_to_watchers(user)
end
@fmendez我认为add_to_watchers
需要是一个实例方法,因为它引用了watchers
实例方法。@Steve啊,好的一点:)我没有意识到如果定义了关联,我可以从注释模型中调用“answer”。感谢活动记录关联帮助程序,如有许多和属于生成方法,如注释,应答和应答=
。
belongs_to :answer
def creator_watches_me
answer.add_to_watchers(user)
end