Как передать выбранное значение из выпадающего списка на контроллер в Ruby? - PullRequest
1 голос
/ 14 февраля 2012

Как передать выбранное значение из выпадающего списка на контроллер в Ruby?

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

все еще у меня проблема, вот мой код

  <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

params [: category_id] == 0 никогда не выполняется, потому что не передает значение 0 в контроллер. Как я могу решить это?

Ответы [ 2 ]

8 голосов
/ 14 февраля 2012

Дайте имя атрибуту для выбора. После отправки формы вы найдете значение выбранного параметра в 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]
1 голос
/ 14 февраля 2012

Допустим, у вас есть модель продукта и вы хотите сохранить в ней category_id. В вашей форме вы бы поступили так.

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

Тогда вы можете получить его в контроллере с помощью params[:product][:category_id]

Я предлагаю вам использовать вспомогательные камни формы, такие как Простая форма . Это делает вашу жизнь намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...