2015-03-03 5 views
0

У меня есть следующий код, который отображает выпадающее меню (у меня это так, так что форма показывает последний выбранный вариант). Я хотел бы передать значение, связанное с выбором, методу в моем контроллере.Передайте локальное значение методу контроллера в Rails 4

Я хочу сохранить это значение «выбор», которое задано как целое число в моей модели пользователя. Начальное значение выбора равно 0.

Я не могу найти способ сделать это с помощью местного значения.

<select class="form-control"> 
    <option value= 1>One</option> 
    <option value= 2>Two</option> 
    <option value= 3>Three</option> 
</select> 

<%= link_to "Select", {controller: :controller_name, action: :method_name, value: :value} %> 

метод контроллера (я использую Завещание называть "CURRENT_USER")

def method_name 
    current_user.choice = value 
    current_user.save 
    redirect_to root_path 
end 
+0

Вы можете использовать form_for, содержащий один флажок, как указано выше. И добавьте «post» маршрут для имени метода вместо использования запроса на получение. – Anuja

+1

Ваше 'значение', вероятно, содержится в' params': 'params [: value]'. Мой совет для вас - изучить некоторые основы Rails. –

ответ

1

Попробуйте form, вот пример того, что вам нужно ниже:

<%= form_tag(url_for(controller: 'controller_name', action: 'method_name'), method: :method_type(PUT, POST, etc.) do %> 
    <div class="form-group"> 
    <%= label_tag(:choice, "Choice") %> 
    <%= select_tag(:choice, options_for_select([0, 1, 2, 3], selected: 0)) %> 
    </div> 
    <%= submit_tag 'Save'%> 
<% end %> 

Как комментатор ускользнул, в вашем методе вы можете использовать:

def method_name 
    current_user.choice = params[:choice] 
    current_user.save 
    redirect_to root_path 
end 
+0

Спасибо. Я играл с form_for, но это то, что я искал. – Sacrulen

Смежные вопросы