我有一個模型Feed,它擁有並屬於許多FilteredUsers。在這種情況下,我通過has_many:through關係實現了它。has_many:通過find_or_initialize_by中斷休息
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
關於如何解決此問題或如何解決它乾巴巴的有什麼建議?
謝謝!
看起來像這樣`initialize_by`路徑沒有意義,如果請求不是`status = block` - 爲什麼麻煩初始化記錄只是爲了`刪除`它呢? – austinfromboston 2009-06-16 21:30:26