モデルにカスタム attr_accessor があります。
params[:model] を使用して新しいモデルを作成しようとすると、次のエラーが発生します。
ActiveModel::MassAssignmentSecurity::Error (Can't mass-assign protected attributes: entity_select, office_select):
class Expedient < ActiveRecord::Base
belongs_to :enterprise
has_many :document
attr_accessor :entity_select
attr_accessor :office_select
...
Rails は、これらが att_accessor であり、データベースのモデルに保存されるべきではないことを認識していると思います。
か否か ?
simple_form を使用してヘルプ フィールドを作成するために、この attr_accessor を使用しています。
<%= f.input :entity_select,:label => 'Entity', :input_html => {:class => "span2"}, :wrapper => :prepend do %>
<span class="add-on"><i class="icon-search"></i></span><%= f.input_field :entity_select, :class => "span2 typeahead_entity", :id_selected => '99', :id => 'typeahead_centre'%>
<%end%>
typeahed には特別なテキスト入力が必要ですが、他の「実際の」フィールドと同様に、simple_form を使用してこの入力を作成したいので、「非実際の属性」を使用しています...
ありがとう、
編集:
ここでパラメータをモデル属性に割り当てるときの直前に、エラーは保存時ではありません:
@expedient=Expedient.new.attributes=params[:expedient]