2016-04-18 2 views

ответ

1

Для этого вы можете использовать active record callbacks. Предположим, у вас есть отдельный класс Response и он принадлежит к Question. Так что ваш код time_asked будет выглядеть следующим образом:

class Question < ActiveRecord::Base 
    has_many :responses 
    before_create :fill_time_asked 

    private 
    def fill_time_asked 
    time_asked = Time.now 
    end 
end 

response.rb:

class Response < ActiveRecord::Base 
    belongs_to :question 
    before_create :fill_time_answered 

    private 
    def fill_time_answered 
    question.time_aswered = Time.now 
    end 
end 

Другой способ сделать это вручную вызвать соответствующие методы, например, question.asked! или question.answered! с ваших контроллеров. Тем не менее, путь рельсов заключается в том, чтобы вести бизнес-логику в ваших моделях и иметь тонкие контроллеры.