1

一括割り当てエラーが発生しています。そして、なぜそれが私にエラーを与えるのか分かりませんここでエラー

ActiveModel::MassAssignmentSecurity::Error in CustomersController#edit

Can't mass-assign protected attributes: gender

ここに私のモデル

Customer     GenderManager        Gender
ID           Id                   Id
First        isVisible            Description
Last         GroupID
Email
...

ここに私の関係

class Customer < ActiveRecord::Base
# RELATIONSHIP
    #Gender
    has_many :gender_managers
    accepts_nested_attributes_for :gender_managers, allow_destroy: :true
end
class GenderManager < ActiveRecord::Base
# RELATIONSHIP
    belongs_to :customer
    has_one :gender
    attr_accessible :customer_id, :friendship_group_id, :isUsed,
    :isVisible, :genders_attributes
    accepts_nested_attributes_for :gender, allow_destroy: :true
end
class Gender < ActiveRecord::Base
    belongs_to :gender_manager
    attr_accessible :description, :gender_managers_id
end

CustomerController

def edit
        @customer = Customer.find(params[:id])
        @customer.gender_managers.build(:gender => Gender.new)

        @bm = current_customer.book_managers.build
end

 <%= form_for @customer, :html => {:multipart => true} do |f| %>
    <div class="customer_edit_error_message">
            <%= render 'shared/error_messages' %>
    </div>
    <fieldset>
    <div class="customer_edit_name">
            <%= f.label :first_name %>
            <%= f.text_field :first_name %>
    </div>

    <div class="customer_edit_middle_name">
            <%= f.label :middle_name %>
            <%= f.text_field :middle_name %>
    </div>

    <div class="customer_edit_last_name">
            <%= f.label :last_name %>
            <%= f.text_field :last_name %>
    </div>
    <%= f.fields_for :gender_managers do |gendermanagers| %>
    <fieldset>
        <%= gendermanagers.fields_for :genders do |genders| %>
            <%= genders.label :description %>
            <%= genders.select :description %>
        <% end %>
        <div><%= gendermanagers.label :friendship_group_id, "Show To: " %>
        <%= gendermanagers.text_field :friendship_group_id %></div>
        <div><%= gendermanagers.check_box :isVisible %> 
        <%= gendermanagers.label :isVisible %></div>
    </fieldset>
    <% end %>
    <div class="customer_edit_button">
            <%= f.submit "Save changes", class: "button_accept" %>
    </div>
    <% end %>
4

2 に答える 2

1

:genderモデルのリストにaddindを追加してみattr_accessibleましたGenderManagerか?

しかし、私は上記の答えを少し修正して、より良いと思います:

gender_manager = @customer.gender_managers.build
gender_manager.build_gender
于 2012-08-10T16:04:00.193 に答える
1

build_genderこのメソッドを使用して、関連付けを作成する必要がある場合があります。

gender_manager = @customer.gender_managers.build
gender_manager.build_gender

この回答は、承認された回答に記載されている修正されたコードを反映するように編集されています。

于 2012-08-10T15:55:25.810 に答える