0

我有一个研究模型,它有很多领域,但我在 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 是空的

为什么会发生这种情况?

4

0 回答 0