我有以下代码显示一个下拉菜单(我有这样的方式,因此表单显示最后选择的选项)。我想将与选择相关的值传递给我的控制器中的方法。
我想将此值保存为" 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
答案 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