【问题标题】:Rails / Simple Form - How to create a select box with HAML?Rails / Simple Form - 如何使用 HAML 创建选择框?
【发布时间】:2016-05-29 11:04:39
【问题描述】:

使用 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

任何帮助将不胜感激:)

【问题讨论】:

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


    【解决方案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
    

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

    【讨论】:

    • 但是在客户端(Haml)中不存在任何方式吗?
    • 这就是集合属性的用途。这种类型的逻辑不适用于视图。
    【解决方案2】:

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

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

    selected 属性设置默认项的 id。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多