私は2つのモデルを持っています。会社とデバイス ユーザーである master_user。会社コントローラーの作成アクションで会社オブジェクトを作成しようとすると、許可されていないパラメーター master_user が表示されます。
モデルは
company.rb
class Company < ActiveRecord::Base
has_many :users
has_one :master_user
accepts_nested_attributes_for :master_user
end
master_user.rb
class MasterUser < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :company
end
これが私の会社の見解です
<%= form_for(@company) do |f| %>
<% if @company.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@company.errors.count, "error") %> prohibited this company from being saved:</h2>
<ul>
<% @company.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<%= f.fields_for @company.master_user do |m_user| %>
<div class="field">
<%= m_user.label :email %>
<%= m_user.text_field :email %>
</div>
<div class="field">
<%= m_user.label :password %>
<%= m_user.password_field :password %>
</div>
<div class="field">
<%= m_user.label :confirm_password %>
<%= m_user.password_field :confirm_password %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
と会社のコントローラー
# GET /companies/new
def new
@company = Company.new
@company.build_master_user
end
# POST /companies
# POST /companies.json
def create
puts "a"
@company = Company.new(company_params)
puts "b"
respond_to do |format|
if @company.save
format.html { redirect_to @company, notice: 'Company was successfully created.' }
format.json { render action: 'show', status: :created, location: @company }
else
puts "c"
format.html { render action: 'new' }
format.json { render json: @company.errors, status: :unprocessable_entity }
end
end
end
def company_params
params.require(:company).permit(:id, :name, :isTrial, :employMax, master_user_attributes: [:id, :email, :password, :confirm_password, :company_id])
end
Rails 4 の要件に従ってパラメーターを許可しています。しかし、何らかの理由でまだ master_user を拒否しています