Ruby on rails 如何将选定的值放入rails表单中?

Ruby on rails 如何将选定的值放入rails表单中?,ruby-on-rails,select,ruby-on-rails-3.2,ruby-2.1,Ruby On Rails,Select,Ruby On Rails 3.2,Ruby 2.1,这是我的haml代码: -if params[:product_id] =select_tag 'product', options_from_collection_for_select(Product.all, :id, :name), placeholder: "Product", required: true, value: Product.find(params[:product_id]).name

这是我的haml代码:

-if params[:product_id]
  =select_tag 'product',
              options_from_collection_for_select(Product.all, :id, :name),
              placeholder: "Product", required: true,
              value: Product.find(params[:product_id]).name
-else
  =select_tag 'product',
              options_from_collection_for_select(Product.all, :id, :name),
              :prompt => 'Select', placeholder: "Product", required: true
问题是,当我检查元素时,该值良好:

<select id="product" name="product" placeholder="Product" required="required" value="Product 2">
        <option value="1">Product 1</option>
        <option value="2">Product 2</option>
        <option value="3">Product 3</option></select>

这种更改不会改变问题中的任何内容

当您通过值选项时,它与选项标记的值属性相匹配,而不是其内容

尝试将值选项更改为

value: params[:product_id].to_i
编辑:刚刚意识到预先选择的值需要作为最后一个选项从\u集合\u传递到选项\u,用于\u选择:

=select_tag 'product',
          options_from_collection_for_select(Product.all, :id, :name, params[:product_id].to_i),
          placeholder: "Product", required: true

我更改了.name by.id,但当我检查元素时,它更改了除value=“2”以外的任何内容,而不是“产品2”。那时我一定在想别的事情;对不起的!它不会改变任何东西,值保持在“2”,视觉效果相同(“产品1”)
=select_tag 'product',
          options_from_collection_for_select(Product.all, :id, :name, params[:product_id].to_i),
          placeholder: "Product", required: true