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であるため、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 が空であることがわかります

なぜこれが起こっているのでしょうか?

4

0 に答える 0