성분으로 냉장고 모델 객체를 저장하는 check_box_tag를 구현하려고합니다. 두 모델은 has-many-through 관계 (FridgeIngredient 모델)를 통해 연결됩니다. 각 냉장고가 사용자에게 속해 있다는 점은 주목할 가치가 있습니다.이 냉장고는 내가이 코드가 이전에 저에게 일한 곳에서 볼 수있는 유일한 차이점이기 때문에 여기에서 문제를 일으킬 수도 있습니다.check_box_tag 포함하는 양식 - 다스 스루 관계를 업데이트하지 않는 매개 변수
이전에 has-many-through 관계에 대한 체크 박스의 성공적인 목록을 만들었지 만,이 경우에는 작동하지 않습니다. (이러한 모델에 맞게) 다음 폼 코드는 다른 곳에서 일 것입니다,하지만 지금은 냉장고 업데이트 실패 :이 올바른 PARAMS처럼 나에게 어떻게 보이는지 제공
<%= form_for(@fridge) do |f| %>
<!-- a debug column for testing -->
<%= f.label :debug %>
<%= f.text_field :debug
<!-- the checkboxes -->
<h2>Add ingredients to your Fridge</h2>
<div>
<% hidden_field_tag "fridge[ingredient_ids][]", nil %>
<% Ingredient.all.each do |ingredient| %>
<%= check_box_tag "fridge[ingredient_ids][]", ingredient.id,
@fridge.ingredient_ids.include?(ingredient.id), id: dom_id(ingredient) %>
<%= label_tag dom_id(ingredient), ingredient.name %><br>
<% end %>
</div>
<%= f.submit "Update" %>
<% end %>
를, 그리고 같은 '디버그'필드 업데이트 해야합니다 :
fridge: !ruby/hash:ActionController::Parameters
debug: ''
ingredient_ids:
- '1'
- '2'
commit: Update
controller: fridges
action: update
id: '2'
@fridge 변수가 잘못되었을 수 있습니까? 그것은 그것을 시험 할 때 냉장고의 정확한 경우를 집어 올리는 것처럼 보입니다. 현재 :
@fridge = current_user.fridge #using my auth method, and unavailable to
그러나 양식을이 프로젝트에 제출하면 냉장고에 재료가 추가되지 않습니다. has-many-through는 정상적으로 동작하며, Rails 콘솔에서 Ingredients를 추가하고 액세스 할 수 있습니다.
마지막으로 콘솔을 통해 추가 된 냉장고에있는 모든 성분에 대한 체크 박스를 선택하는 것은 중요합니다 (예 : 콘솔을 통해 냉장고에 스테이크를 추가하면 페이지의 체크 박스 목록에 체크 됨) .
도움 주셔서 감사합니다.