模式
socials
t.string "title"
t.text "description"
t.string "address"
t.integer "category_age_id"
category_ages
t.string "name"
seed.rb
CategoryAge.delete_all
ca01 = CategoryAge.create!(name:'18 - 24')
ca02 = CategoryAge.create!(name:'25 - 34')
ca03 = CategoryAge.create!(name:'All Ages')
模型
social.rb
belongs_to :category_age
category_age.rb
has_many :socials
控制器
socials_controller.rb
def index
@search = Social.search(params[:q])
@socials = @search.result(distinct: true)
@age = Social.find_by_sql("SELECT category_age_id FROM socials GROUP BY category_age_id").map &:category_age_id
end
视图
views/socials/index.html.erb
Age Group: <%= f.select :category_age_id_eq, @age %>
我在views / social / index.html.erb文件中尝试过以下代码,但没有成功
Age Group: <%= f.select :category_age_name_eq, @age %>
我的搜索工作完美但我如何才能显示要显示的类别的名称而不是ID。附上的图片显示了ID,但希望看到例如18 - 24.您的帮助将非常感谢
答案 0 :(得分:1)
有几种方法可以做到这一点,但我喜欢使用options_for_select
并传递一个二维数组,其中第一个值是要保存的值,第二个是你要显示的值。等等,
<%= f.select :thing, options_for_select([[value_to_save, value_to_show], [another_to_save, another_to_show], [etc, etc]] %>
我写了一个传递数组数组并将其传递给options_for_select