多くのFilteredUsersを持ち、それに属するモデルFeedがあります。この場合、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で回避する方法に関する提案はありますか?
ありがとう!