我想在表單上創建一個下拉選擇。我有教授和教室之間的HABTM協會:HABTM關聯下拉選擇
課堂教學模式:
class Classroom < ApplicationRecord
has_and_belongs_to_many :professors
end
型號教授:
class Professor < ApplicationRecord
has_and_belongs_to_many :classrooms
end
強PARAMS:
def classroom_params
params.require(:classroom).permit(:name, :professor_ids => [])
end
我試圖找到一個在表格裏面使用f.select
而不是select_tag
。但是當我這樣做時,數據庫不會保存這些值。這樣的工作:
<%= form_for @classroom do |f| %>
<%= f.label :name %><br>
<%= f.text_field :name %><br>
<% array = Professor.all.map { |professor| [professor.user.name, professor.id] } %>
<%= select_tag "classroom[professor_ids][]", options_for_select(array) %>
<% end %>
但我想這樣的,它不工作:
<%= form_for @classroom do |f| %>
<%= f.label :name %><br>
<%= f.text_field :name %><br>
<% array = Professor.all.map { |professor| [professor.user.name, professor.id] } %>
<%= f.select :professor_ids, options_for_select(array) %>
<% end %>
視圖工作正常,但是當我提交表單,價值不進入到classroom_params。我試圖調試它停止控制器提交後,我得到了這一點:
的PARAMS與提交的所有資料正確地來了,但classroom_params來到缺少professor_ids。 有沒有辦法使用f.select
來做這個下拉菜單?
什麼是控制器中的'cfg'?請附上控制器代碼。 –
這只是我寫的停止它,然後在提示中看到參數。 –