我有一个模型 Feed,它拥有并属于许多 FilteredUser。在这种情况下,我通过 has_many :through 关系实现了它。
class Feed < ActiveRecord::Base
has_many :denials, :dependent => :destroy
has_many :filtered_users, :through => :denials
如果它不存在,我想创建一个记录,如果它确实存在,我想找到该对象。当我尝试使用 find_or_initialize_by(或 find_or_create_by)时,会抛出异常说undefined method 'feed_id=' for <FilteredUser..
这是代码:
feed = Feed.find(params[:id])
user = feed.filtered_users.find_or_initialize_by_user_url(params[:user_url])
if params[:status] == "block"
feed.filtered_users << user
else
feed.filtered_users.delete(user)
end
feed.save
有关如何解决此问题或如何 DRYly 解决此问题的任何建议?
谢谢!