0

チェックボックスを使用してユーザーの位置のブール属性を更新しようとすると、この一括割り当てエラーが引き続き発生する理由がわかりません (ブール属性は「is_visible」です)。

質量割り当てエラーは次のとおりです。

'Can't mass-assign protected attributes: position'

ユーザーには多くのポジションがあります。位置にはブール値の属性「is_visible」があります。

ユーザー モデルに「accepts_nested_attributes_for」を含めていることに気付くでしょう。また、ユーザー モデルに「positions_attributes」をアクセス可能な属性として含めています。

私のユーザーモデルからの抜粋:

class User < ActiveRecord::Base

attr_accessible :position_ids, :positions_attributes

has_many :positions, dependent: :destroy
accepts_nested_attributes_for :positions

end

そして私の位置モデル:

class Position < ActiveRecord::Base
  attr_accessible :is_visible

  belongs_to :user  
end

私の見解からの抜粋:

<%= form_for(@user) do |f| %>
  <% @positions.present? and @positions.each do |position| %>
    <%= f.fields_for position do |p| %>
      <%= p.check_box :is_visible %>
    <% end %>
    Make this positions visible
<% end %>

そして今、私のユーザーコントローラーから:

  def edit_profile
    @user = current_user
    @preferred_venue = @user.preferred_venues.last if @user.preferred_venues
    @positions = @user.positions
    @educations = @user.educations
  end

  def update
    @user = User.find(params[:id])

    if @user.update_attributes(params[:user])
      flash[:success] = "Profile saved"
      redirect_to @user
    end

  end

フィードバック/ヘルプをいただければ幸いです。ありがとう!

4

0 に答える 0