Rails / Simple Form - 如何使用HAML创建选择框?

时间:2016-02-17 16:06:16

标签: ruby-on-rails haml simple-form

使用简单表格和HAML添加带有选项和默认值的选择框的最佳方法是什么?

这是我的_form.html.haml内容,f.option无效。

= simple_form_for @post do |f|                                                                                                                                    
    = f.input :title       
    = f.input :body
    = f.label :category_id 
    = f.select :category_id, Category.all.map{|category| [category.name, category.id]}
    = f.option{value: "undefined"} 
    %br

= f.button :submit

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:1)

  def get_select_data
    data = Category.all.map{ |category| [category.name, category.id] }
    data.push([.....])
  end

可能将其放入服务模型中。在控制器中初始化模型,并在视图中使用它:

= f.select :category_id, @service_model.get_select_data

也许这对你来说是一个好的开始

答案 1 :(得分:1)

定义选择和默认值的正确方法是:

= f.input :category_id, collection: Category.all.map{|category| [category.name, category.id]}, selected: 1

selected属性设置默认项的ID。

您可以在此处找到有关选择的更多信息:https://github.com/plataformatec/simple_form#collections