私が直面している単純な問題についての簡単な質問です (関連付けとレールに関するいくつかのことをより深いレベルで理解する方法として使用したいと思います)。ここに行きます:
関連する 2 つのモデルは次のとおりです。
class Employee < ActiveRecord::Base
attr_accessible :name
attr_accessible :age
belongs_to :role
attr_accessible :role_id
end
class Role < ActiveRecord::Base
attr_accessible :title
attr_accessible :salary
has_many :employees
end
すべての新入社員が役割に応じて一定の給与を受け取るようにします (これはほとんどの場合です)。しかし、特定の従業員に別の給与を設定したい場合はどうすればよいでしょうか?
を使用しsimple_form
て、これまでに次のように書いています。
<%= f.input :name, label: 'Employee Name', :required => true %>
<%= f.association :role, as: :radio_buttons, :required => true %>
<%= f.input :salary, label: 'Employee Salary', :input_html => { :value => 0 }, :required => true %>
もちろん、これは私にcan't mass assign protected attributes: salary
エラーを与えます。
それを修正するためattr_accessible :salary
に、Employee
モデルに追加しましたが、エラーがunknown attribute: salary
.
私が理解していることから、最初に新しい従業員で何かを変更し、次に従業員モデルとコントローラーで何かを変更して、給与の値を受け入れ、それを処理する方法を知る必要がありますよね?
私もaccepts_nested_attributes_for
使用されているのを見てきましたが、関連付けが最適な方法で構築されているかどうかも完全にはわからないため、関連付けのどちら側に配置する必要があるかは完全にはわかりません。