フォームにドロップダウン選択を作成しようとしています。HABTM関連のドロップダウン選択
教室モデル:
class Classroom < ApplicationRecord
has_and_belongs_to_many :professors
end
教授モデル:
class Professor < ApplicationRecord
has_and_belongs_to_many :classrooms
end
強いPARAMS:私は教授と教室の間にHABTM関連を持っている私が見つけることを試みている
def classroom_params
params.require(:classroom).permit(:name, :professor_ids => [])
end
フォーム内にselect_tag
の代わりにf.select
を使用する方法。しかし、私がそれをすると、データベースは値を保存しません。
<%= 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 'とは何ですか?コントローラコードを添付してください。 –
それは私がそれを止めて、プロンプトでparamsを見るために書いたものです。 –