【发布时间】:2016-08-31 22:00:27
【问题描述】:
我创建了一个用户和程序表,以及一个连接表。每个用户 has_and_belongs_to_many :programs 并且每个程序 has_and_belongs_to_many :user。
使用下拉选择,我想选择一个程序并将其保存给用户。但是在我保存之后,显示屏总是显示文本“程序”而不是从下拉列表中选择的实际程序名称。
下拉选择表单:
<%= f.collection_select(:program_ids, Program.all, :id, :name, :include_blank => "Choose a Program" ) %>
显示用户所属的程序:
<% @user.programs.each do |program| %>
<%= program.name %>
<% end %>
我不确定我是否正确地将程序保存给用户,或者我是否显示错误的变量。我遵循了how to have a dropdown select field in a rails form 的想法。
任何建议都会有所帮助,谢谢!
【问题讨论】:
-
你可以试试这个吗:
<%= f.select :program_id, Program.all.map {|c| [c.name, c.id] }, {prompt:"Choose a Program"} %> -
@7urkm3n 我尝试了您发布的代码,得到了相同的结果。它只是列为“程序”而不是实际的程序名称,例如“数学”。
-
您到底想如何保存
ids,多个或一个程序ID?因为你的数据库关系多对多。如果我没有错,则需要将其保存为数组,而不仅仅是整数。
标签: ruby-on-rails forms drop-down-menu collection-select