Удаление / добавление ассоциаций из / в запись не обновляет столбцы меток времени - PullRequest
2 голосов
/ 10 ноября 2011

Учитывая следующий код контроллера

def update
  params[:image][:contributor_ids] ||= []
  params[:image][:category_ids] ||= []
  @image = Image.find( params[:id] )
  if @image.update_attributes params[:image]
    redirect_to session[:return_to]
  else
    render :edit
  end
end

И следующее изображение модели

class Image < ActiveRecord::Base

  has_many :category_links, :as => :categorizable, :dependent => :destroy
  has_many :categories, :through => :category_links

  has_many :contributions, :as => :contributable, :dependent => :destroy
  has_many :contributors, :through => :contributions
  # .... omitted for clarity
end

Когда вызывается update_attributes только с изменяемыми ассоциациями ActiveRecord не изменяет столбец updated_at - почему это так и как изменить это поведение?

1 Ответ

2 голосов
/ 10 ноября 2011

Я думаю, что это происходит потому, что когда у вас есть отношение N: N и вы обновляете это отношение, вы фактически создаете / модифицируете / удаляете записи в объединяемой таблице (в данном случае contributions или category_links),и фактически не обновляет сам экземпляр @image.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...