0
我有兩個型號軌道參數傳遞到回調
class Department < ActiveRecord::Base
has_many :checklists
attr_accessible :deadline
after_update :update_checklist
class Checklist < ActiveRecord::Base
belongs_to :department
attr_accessible :content, :category
基本上,「部門」的模式有一個名爲「最後期限」虛擬屬性,它是類型日期。 「截止日期」的實際值以字符串格式存儲在另一個模型「清單」中。
每次當「最後期限」被更新,我想檢查是否有在「清單」的條目,並創建(如果還沒有)或更新(如果已經有一個條目)。
我是這樣想的
def deadline=(deadline)
@cl = Checklist.find_or_create_by_department_id_and_category(self.id, 'deadline')
@cl.update_attributes(:content => deadline.to_s)
@cl.save
end
def deadline
@deadline = self.checklists.find_by_category('deadline')
Date.parse(@deadline.to_s)
end
但上面的虛擬屬性不能正常工作。 在尋找答案時,我在軌道上發現,對於這種情況,回調將是更好的解決方案。所以,我想是這樣的:
class Department < ActiveRecord::Base
after_update :update_checklist
def update_checklist
@cl = Checklist.find_or_create_by_department_id_and_category(self.id, 'deadline')
@cl.update_attributes(:content => ???)
end
我不知道如何將價值傳遞給回調。
請幫我這個設計。處理這個問題的標準方法是什麼?先謝謝你!
但內容並不存儲在部門的任何屬性。它是來自控制器的值(表單值)。 – user1495133
但使用的是「大限」,如下內容:@ cl.update_attributes(:含量=> deadline.to_s) – Yanhao