0
ネストされた属性を更新した後、モデルのコールバックを実行しようとしていました。コールバック中に、新しく作成されたネストされた属性IDにアクセスできませんでした。以下のいくつかの例:Rails:ネストされた属性を更新した後でモデルコールバックを実行するにはどうすればよいですか?
モデル:
class OptionType < ActiveRecord::Base
has_many :option_values
accepts_nested_attributes_for :option_values
after_update :print_new_option_value
def print_new_option_value
@option_value = []
option_values.each do |option_value|
if option_value.new_record?
@option_value << option_value
end
end
@option_value.each do |ov|
print "This is the new option_value name = #{ov.name}"
print "This the new option_value id = #{ov.id}"
end
end
end
class OptionValue < ActiveRecord::Base
belongs_to :option_type
end
私は新しいオプション値を持つオプションの種類(名前:新しいオプション値)を更新した後、以下のレールが見えるログ:
- メッセージには、オプションタイプの更新後に入力されたネストされた属性名が表示されます。
- ネストされた属性IDが空です
- オプションのコールバックの後にネストされた属性が更新されています。
私の質問、オプションのコールバックを呼び出す前に、ネストされた属性(オプション値)を更新するにはどうすればよいですか?理由は、私はいくつかのコードのネストされた属性IDにアクセスする必要があります。
大変ありがとうございます。
! –