collection_check_boxes에서 여러 열을 표시하는 방법
collection_check_boxes
를 사용할 기회가 있었으므로 비망록으로 남겨두려고 생각합니다.했던 일
각 언어의 버전·개발 환경
전제
다음과 같은 관련이 있습니다.
화면 전환 이미지
그룹 목록 페이지가 있습니다.
「소속 사용자 일람 버튼」을 클릭하면 「소속 유저 일람」으로 천이합니다.
"사용자 추가/제외 버튼"을 클릭하면 "멤버 등록"으로 전환합니다.
※쓰고 있고 여기의 버튼의 표시는 유저보다 멤버 쪽이 적절하다고 생각했습니다만, 수정이 번거롭기 때문에 진행합니다.
회원 등록 주위의 소스 코드
members_controller
def index
@group = Group.find(params[:group_id])
@users = User.all
end
index.html.haml
= form_with(model: @group, url: admin_group_members_path, group_id: @group.id, local: true) do |form|
#第3引数に指定したものが、checkboxのvalue値に、第4引数に指定したものが text値になる。
= form.collection_check_boxes(:user_ids, @users, :id, :name) do |user|
= user.label { user.check_box + user.text }
= form.submit class: "btn btn-primary float-right"
collection_check_boxes에서 여러 열 표시
회원등록에 있어서, 유저의 계정명(name) 뿐만이 아니라, 메일 주소(email)도 표시하고 싶을 때는
collection_check_boxes
의 개소를 이하와 같이 변경하면, 메일 주소 표시시킬 수 있습니다.= form.collection_check_boxes(:user_ids, @users, :id, :name) do |user|
= user.label do
= user.object.name
= user.object.email
= user.check_box
이것에 Bootstrap을 맞추어 좋은 느낌의 테이블로 하면 다음과 같은 코드가 됩니다.
= form_with(model: @group, url: admin_group_members_path, group_id: @group.id, local: true) do |form|
%table#group_list.table.table-striped
%thead
%tr
%th ユーザ名
%th メールアドレス
%th 追加/除外
%tbody
= form.collection_check_boxes :user_ids, User.all, :id, :name do |user|
= user.label do
%tr
%td= user.object.name
%td= user.object.email
%td= user.check_box
수정 후의 이미지입니다.
참고로 했습니다.
collection_check_boxes 메서드의 구조 확인
Reference
이 문제에 관하여(collection_check_boxes에서 여러 열을 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hibriiiiidge/items/f993c46ee84b3eb124da텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)