after_update
模型中添加Yojana
回调我有一个类Yojana
和另一个类Kabuliyat
,其中Kabuliyat属于Yojana,而Yojana有一个kabuliyat。
class Yojana < ApplicationRecord
has_one :kabuliyat, dependent: :destroy
end
class Kabuliyat < ApplicationRecord
belongs_to :yojana
end
[kabuliat实例的某些字段/属性取决于yojana实例的属性。
例如,新喀布尔雅特]的部分形式。
- @yojana = Yojana.find_by_id(params[:yojana_id])
= form_for kabuliyat do |f|
tr
td = f.label :yojana_name
td = f.text_field :yojana_name, {value: @yojana.yojana_name,class: "hide-input",:readonly => true}
tr
td = f.label :mukhya_samiti
td = f.text_field :mukhya_samiti, {value: @yojana.mukhya_samiti,class: "hide-input",:readonly => true}
您可以看到,kabuliyat实例的属性,例如和:mukhya_samitit是从其父yojana实例属性中提取的。:yojana_name
问题:
[我想知道,如果我保存了kabuliyat的实例,然后编辑了Kabuliyat属性所依赖的Yojana实例,那么我又如何能够反映出kabuliyat实例的更改。例如
:如果我将Yojana实例的名称从“ A”更改为“ B”,此更改是否可以自动反映在子实例kabuliyat的属性(例如yojana_name)上。我尝试过的:
我在Yojana.rb
模型类中使用了before_update
回调,并手动将其更改为Yojana上所有其他依赖的类。我想知道是否还有其他有效的方法。我有一个班级Yojana和另一个班级Kabuliyat,其中Kabuliyat属于Yojana,而一个Yojana有一个kabuliyat。类Yojana after_update
模型中添加Yojana
回调after_update :update_kabuliyat
def update_kabuliyat
return unless yojana_name_changed? || mukhya_samiti_changed?
kabuliyat.update(yojana_name: yojana_name, mukhya_samiti: mukhya_samiti)
end
尝试一下。
after_update
模型中添加Yojana
回调