多くのフィールドを持つスタディ モデルがありますが、1 つに問題があります。
職業名
だから私の研究モデルではこれを持っています
class Study < ActiveRecord::Base
attr_accessible :profesion_related, :profesion_name
attr_accessor :profesion_related
def profesion_related=(id)
if id.present?
if self.study_type_id == 4
if self.country_id == 170
#some code here
else
profesion_parent = Profesion.find(id)
new_profesion = Profesion.create({g_code: profesion_parent.g_code, mg_code: profesion_parent.mg_code, name: self.profesion_name})
self.profesion = new_profesion
end
end
end
end
end
しかし、self.profesion_nameがnilであるため、Profesionを作成する行でエラーが発生します
私のコントローラーでこれを行う場合
def create
@study = Study.new(params[:study])
respond_to do |format|
#here
puts @study.to_yaml
if @study.save
.....
end
profesion_name に値があることがコンソールに表示されますが、これを行うと
class Study < ActiveRecord::Base
...
def profesion_related=(id)
puts self.to_yaml
....
end
end
self.profesion_name が空であることがわかります
なぜこれが起こっているのでしょうか?