我有一个研究模型,它有很多领域,但我在 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
如果在我的控制器中我这样做
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 是空的
为什么会发生这种情况?