0
我有2個模型與關聯。我想在一個模型中設置before_save來修改另一個模型。以下是我有:Activerecord回調修改相關模型
class Event < ActiveRecord::Base
belongs_to :leads
end
class Lead < ActiveRecord::Base
before_save :update_event
has_many :events, :dependent => :destroy
accepts_nested_attributes_for :events, :reject_if => lambda { |a| a[:title].blank? }
def update_event
self.events.title = "Testing to set the event title"
end
end
最終事件具有屬性,如標題,將在系統內的各種模型關聯設置。在上面的例子中,Leads是其中之一。潛在客戶將擁有可能事件的下拉列表,因此我想在before_save中執行某些操作,而下拉列表中的選擇最終會設置事件標題。如:
self.events.title = self.selected_event
我得到的錯誤是:
undefined method `title=' for #<ActiveRecord::Relation:0x007fed3229d610>
我清楚這樣做不對。我會很感激任何幫助。我仍然在尋找一個解決方案,如果我弄明白的話,我會自己更新它。
謝謝!
我該如何修改該代碼,以便它只改變當前事件。每個潛在顧客都有很多事件,而上面的代碼會更改所有事件的標題,而不是剛剛添加的新事件。 –
好吧,我改變了代碼閱讀self.events.last.title =「測試設置事件標題」,這是爲我工作。除非你能想到一個更好的方式來做到這一點。 –