1

after_save 条件付きコールバックを実行しようとしています

after_save :change_rel_status, :if => :relation_type_id == 1

def change_rel_status
  self.status = "Confirmed"
  self.save
end

しかし、エラーメッセージが表示されますundefined method after_save for false:FalseClass

{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"f4IN...=",
"relationship"=>{"relation_type_id"=>"1",
"category_ids"=>[""]},
"commit"=>"Update Relationship",
"id"=>"19"}

更新されていない他のモデルの属性がフォームに含まれているためかどうかはわかりません。

ありがとう。

4

1 に答える 1

0

もっと簡単なものを提案できますか:

before_save :change_rel_status

def change_rel_status
  if params[:relationship][:relation_type_id] == 1
    self.status = "Confirmed"
  end
end
于 2012-12-07T20:00:38.010 に答える