如何将选定的值从下拉列表传递给Ruby中的控制器?

Geo*_*ayi 1 ruby listbox ruby-on-rails

如何将选定的值从下拉列表传递给Ruby中的控制器?

<select>
  <option value="0">New</option>
  <option value="1">SubCategory1</option>
  <option value="2">SubCategory2</option>
  <option value="3">SubCategory3</option>
</select> 
Run Code Online (Sandbox Code Playgroud)

我这里有一个问题是我的代码

  <select name="category_id">
  <option value="0">New Category</option>
  <% for category in categories %>
    <option value="<%= category.id %>"><%= category.name %></option>
  <% end %>
  </select>

 def create
        if params[:category_id] == 0
            @category = Category.new(params[:category])
            respond_to do |format|
            if @category.save
            end

        else
        @subcategory = Subcategory.new(params[:subcategory])
            respond_to do |format|
                if @subcategory.save
                    ....
                end
            end
        end
  end
Run Code Online (Sandbox Code Playgroud)

params [:category_id] == 0永远不会执行,因为没有将值0传递给控制器​​.我怎么解决它?

Sim*_*tti 8

为select选择一个name属性.提交表单后,您将在params哈希中找到所选选项的值.

例如

<select name="category_id">
  <option value="0">New</option>
  <option value="1">SubCategory1</option>
  <option value="2">SubCategory2</option>
  <option value="3">SubCategory3</option>
</select> 

params[:category_id]
Run Code Online (Sandbox Code Playgroud)