Допустим, у меня есть модель User
, модель Task
, которая belongs_to :user
, :has_one :event
, имеет логический атрибут completed
, и модель Event
, которая создается при завершении задачи, также belongs_to :event
.
В 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)
Хотя первый способ кажется наиболее правильным, есть ли преимущества в использовании любого из последних вариантов?