2013-11-26 5 views
0

레스토랑의 음식 종류를 나타내는 'FoodType'모델이 있습니다. 나는 새로운 레스토랑을 만들기위한 전망을해야하며 사용자가 각 레스토랑에 대해 음식의 유형을 설정할 수 있도록 체크 박스 목록을 가져야합니다. 내가 생성 한 후 일부 작업을하기 위해 params[restaurant][food_types][0] = true 같은 매개 변수를 갖고 싶어레일에 체크 박스 배열

 <% FoodType.all.each do |food_type| %> 
        ... 
      <div class="row"> 
       <%= f.check_box :food_types[0] %>  
      </div> 
        ... 
     <% end %> 

:이 같은 것을 갖고 싶어. 제발, 말해 봐요, 어떻게해야합니까? 미리 감사드립니다.

+0

문제를 쉽게 해결할 수 있도록 전체 양식을 포함해야합니다. 또한 액션에 코드를 포함하십시오. 이 작업을 수행하는 쉬운 방법이 있지만 컨벤션을 따라야합니다. – jvnill

답변

0

아마도 레스토랑과 음식 유형을 결합하는 조인 테이블이 있습니까? restaurant_idfood_type_id을 가진 restaurant_food_types (RestaurantFoodType 모델)이라는 메뉴가 있다고 가정 해 보겠습니다.

그런 레스토랑이 관련이있을 것이다 :

Restaurant < ActiveRecord::Base 
    has_many :restaurant_food_types 
    has_many :food_types, :through => :restaurant_food_types 

이 당신에게 당신이 조인 설정하는 레스토랑에서 호출 할 수있는 방법 .food_type_ids을 줄 것이다. 이 메서드는 양식에 연결해야합니다. 배열 배열이 필요하므로 배열 스타일 매개 변수 (이름이 []로 끝나는 위치)를 설정해야합니다 .check_box 대신 check_box_tag를 사용해야 할 수도 있습니다 배열 스타일의 매개 변수 이름에 액세스 : 내가 이런 짓을 했을까 :

<% form_for @restaurant do |f| %> 
    <% FoodType.all.each do |food_type| %> 
    ... 
    <div class="row"> 
     <%= check_box_tag "restaurant[food_type_ids][]", food_type.id, @restaurant.food_type_ids.include?(food_type.id) %><%= food_type.name %>  
    </div> 
    ... 
    <% end %> 
    <%= f.submit "Save" %> 
<% end %> 

를 내가 여기 check_box_tag를 사용하고 있지만, food_type_ids 방법으로 후크하는 더 좋은 방법이있을 수 있습니다 말처럼.