나는 레일 2.3이 신기한 것을 좋아하는 중첩 된 형태의 기능을 가지고 주어진,이에 대한 간단한 해결책이되었습니다해야한다고 생각했다. 기본적으로 내가 만들거나 사용자를 업데이트하고 동시에 그들에게 역할을 지정합니다.중첩 된 객체 체크 박스/w -도 accepts_nested_attributes_for와 대량 할당?
모든 것을 올바르게하고있는 것처럼 보이지만 오류가 발생합니다. 경고 : 다음 보호 속성을 할당 할 수 없습니다 : roles_attrributes. 나는 어쩌면 조인 테이블이 혼란 레일이라고 생각했기 때문에
나는 심지어 사용자 [permissions_attrributes] [ROLE_ID]로보기를 변경했습니다.어쨌든,이 실제로 작동하는 방법에 대한 어떤 제안?
는 모델
class User < ActiveRecord::Base
has_many :permissions
has_many :roles, :through => :permissions
accepts_nested_attributes_for :roles
accepts_nested_attributes_for :permissions
end
보기에서 발췌 (내가 노력하고 내가 여기에 원하는 생성 fields_for를 가져 오지 못했습니다 발견, 어쩌면 그건 내 문제 야?)
<% for role in Role.all %>
<%= check_box_tag("user[roles_attrributes][id]",role.id) %>
<%= role.rolename %>
<br/>
<% end %>
에 Params가 건너 오는 것 같다 오른쪽 :
{"user"=>{"password_confirmation"=>"[FILTERED]",
"roles_attrributes"=>{"id"=>"2"}, ...
솔루션 attr_accessible을 사용하지 않고, permission_attributes에 액세스해야하며, 양식이 약간 벗어난 철자의 조합.
모델 :
has_many :permissions, :dependent => :destroy
has_many :roles, :through => :permissions
accepts_nested_attributes_for :permissions
attr_accessible :permissions_attributes
보기 :
<% Role.all(:order => "rolename ASC").each_with_index do |role,idx| %>
<%= check_box_tag("user[permissions_attributes][#{idx}][role_id]",role.id) %>
<%= role.rolename %>
<br/>
<% end %>
accepts_nested_attributes_for에는이 기능이 필요하지 않습니다. 어쨌든, 나는 둘 다 시도하고 둘 다 노력하지 않았다. – Bill
해당 오류 메시지는 확실히 attr_protected 또는 attr_accessible 문제로 인해 발생하는 오류 메시지입니다. 또한 http://apidock.com/rails/ActiveRecord/NestedAttributes/ClassMethods/accepts_nested_attributes_for는 ANAF에서도 인식해야 할 부분임을 나타냅니다. 아마도 더 자세히 볼 가치가 있을까요? –