我创建了一个用户和程序表,以及一个连接表。每个用户has_and_belongs_to_many:程序和每个程序has_and_belongs_to_many:user。
使用下拉选择,我想选择一个程序并将其保存给用户。但是在我保存之后,显示屏始终显示文字" Program"而不是从下拉列表中选择的实际程序名称。
下拉选择表单:
<%= 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的想法。
任何建议都会有所帮助,谢谢!
答案 0 :(得分:0)
我能够找到解决问题的方法。下拉选择表单和视图代码保持不变。它现在显示与用户关联的程序,而不是显示文本&#34; Program&#34;。
将serialize
添加到program.rb:
class Program < ActiveRecord::Base
has_and_belongs_to_many :users
serialize :program
end