将本地值传递给Rails 4中的控制器方法

时间:2015-03-03 14:18:26

标签: html ruby-on-rails

我有以下代码显示一个下拉菜单(我有这样的方式,因此表单显示最后选择的选项)。我想将与选择相关的值传递给我的控制器中的方法。

我想将此值保存为" choice"在我的用户模型中指定为整数。选择的初始值为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} %>

控制器方法(我使用Devise来调用&#34; current_user&#34;)

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

1 个答案:

答案 0 :(得分: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