說我有一個User
模型,Task
模型belongs_to :user
,:has_one :event
,有completed
布爾屬性,當完成任務時創建的Event
模型,也belongs_to :event
。什麼時候應該直接使用關聯ID?
在TaskObserver
我注意到,而不是
# app/controllers/task_observer.rb
class TaskObserver < ActiveRecord::Observer
def after_update(task)
def after_update
task.create_event(:user=>task.user) if task.completed?
end
end
我可以寫
task.create_event(:user_id=>task.user.id)
甚至
task.create_event(:user_id=>task.user_id)
雖然第一種方式似乎最正確的是,使用後面的任何一種變體是否有好處?
這真的是它的工作原理。你認爲has_one更合適嗎? – 2010-11-29 05:46:11