2012-05-12 3 views
10

임 (Wicked gem을 사용)은 다단계 양식으로 작업합니다. 양식의 첫 번째 몇 단계에서 나는 사용자 모델을 편집 중이며 그 단계는 잘 작동합니다. 그런 다음 사용자 모델과 HABTM 관계가있는 "관심사"모델을 시도합니다. Heres는보기레일 오류 : 보호 속성을 대량 지정할 수 없습니다 : interest_ids?

ActiveModel::MassAssignmentSecurity::Error in UserStepsController#update 

Can't mass-assign protected attributes: interest_ids 
Rails.root: /Users/nelsonkeating/rails_projects/Oreminder1 

Application Trace | Framework Trace | Full Trace 
app/controllers/user_steps_controller.rb:12:in `update' 

user_steps_controller.rb

class UserStepsController < ApplicationController 
    include Wicked::Wizard 
    steps :standard, :personal, :interests, :dates 

def show 
    @user = current_user 
    render_wizard 
end 

def update 
    @user = current_user 
    @user.attributes = params[:user] 
render_wizard @user 
end 

end 

:

<%= render layout: 'form' do |f| %> 

<% for interest in Interest.find(:all) %> 
<label class="checkbox"> 
    <%= check_box_tag "user[interest_ids][]", interest.id, @user.interests.include?(interest) %> 
    <%= interest.name %> 
</label> 
<% end %> 

<% end %> 

어떤 아이디어 그러나 나는이 오류가? 감사!

+1

Rails 3.2.3 이상인 경우 대량 할당하려는 항목을 명시 적으로 흰색으로 나열해야합니다. 그게 문제일까요? http://www.h-online.com/security/news/item/Rails-3-2-3-makes-mass-assignment-change-1498547.html을 참조하십시오. –

+0

내 관심 분야 모델로 설정했습니다 : attr_accessible : name, : interest_ids – js111

+0

사용자 모델에 설정해야합니다. – Mischa

답변

21

은 당신은 당신의 사용자 모델이 추가하여이 오류를 제거 할 수 있습니다 이것을 interest_ids 속성이 mass assignment으로부터 보호하고 어쨌든에 값을 할당하려고하면 예외가 발생하지 않고

attr_accessible :interest_ids 

.

관련 문제