[RUBY-ON-RAILS] 4 레일 - has_and_belongs_to_many 협회에 대한 확인란
RUBY-ON-RAILS4 레일 - has_and_belongs_to_many 협회에 대한 확인란
최근 4. 내가 어떻게 몇 가지 서로 다른 장소에서 제대로 작동하려면에 대한 정보를 찾을 수 있었다 레일에서 has_and_belongs_to_many (HABTM) 관계에 대한 작업에 체크 박스를 점점 문제가 있었다, 그러나 몇 가지를 문서화하는 좋은 것이라고 생각 필요한 간단한 단계는에 유래 여기에 한 곳에서 제대로 작동 얻을 수 있습니다.
셋업으로 처리기에 HABTM 협회와 개집의 모델을 가정합니다.
class Kennel
has_and_belongs_to_many :handlers
end
해결법
-
==============================
1.이것은 당신이 양식 할 필요있다 : A는 도우미에 내장있을 때 음주 수동으로 할 수 없습니다.
이것은 당신이 양식 할 필요있다 : A는 도우미에 내장있을 때 음주 수동으로 할 수 없습니다.
<%= form_for @kennel do |f| %> <%= f.collection_check_boxes(:handler_ids, Handler.all, :id, :to_s) %> <% end %>
-
==============================
2.형태는 다음과 같이해야한다 :
형태는 다음과 같이해야한다 :
<%= form_for(@kennel) do |form| %> ... <div class="field"> <div class="field_head">Handlers</div> <%= hidden_field_tag("kennel[handler_ids][]", nil) %> <% Handler.order(:name).each do |handler| %> <label><%= check_box_tag("kennel[handler_ids][]", id, id.in?(@kennel.handlers.collect(&:id))) %> <%= handler.name %></label> <% end %> </div> ... <% end %>
hidden_field_tag는 사용자가 모든 상자의 선택을 취소하고 성공적으로 모든 연결을 제거 할 수 있습니다.
제어기는 permitted_params 방법을 통해 강한 매개 변수를 허용해야 :
params.permit(kennel: [:city, :state {handler_ids: []}, :description, ... ])
참고 :
-
==============================
3.나는 has_and_belongs_to_many 연결이 방법을 구현 :
나는 has_and_belongs_to_many 연결이 방법을 구현 :
모델 / 역할
class Role < ActiveRecord::Base has_and_belongs_to_many :users end
모델 / 사용자
class User < ActiveRecord::Base has_and_belongs_to_many :roles end
사용자 / _form.html.erb
--- ---- ----- <div class="field"> <% for role in Role.all %> <div> <%= check_box_tag "user[role_ids][]", role.id, @user.roles.include?(role) %> <%= role.name %> </div> <% end %> </div>
users_controller.rb
def user_params params.require(:user).permit(:name, :email, { role_ids:[] }) end
중간 TABLE_NAME는 roles_users해야하며, 두 개의 필드가 있어야합니다 :
from https://stackoverflow.com/questions/21688200/rails-4-checkboxes-for-has-and-belongs-to-many-association by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 산 사자에 페이지 보석을 설치할 수 없습니다 (0) | 2020.02.26 |
---|---|
[RUBY-ON-RAILS] Rails.cache.fetch와 액티브 레코드 쿼리를 캐싱 혼란 (0) | 2020.02.26 |
[RUBY-ON-RAILS] 4 레일 : 왜 글꼴이 생산에 로딩하지? (0) | 2020.02.26 |
[RUBY-ON-RAILS] 어떻게 고안의 SessionsController에 대한 before_filter를 건너 뛰려면? (0) | 2020.02.26 |
[RUBY-ON-RAILS] RSpec에 컨트롤러 사양에서 사용하기 위해 소장 구성 (0) | 2020.02.26 |