首页 > 解决方案 > 如何在 Rails 表单中创建一个下拉菜单,用户可以在其中更改默认值?

问题描述

我想在我的 Rails 表单中有一个下拉菜单,用户可以在添加订单时选择城市的一个区域,例如“Marchmont”、“New Town”、“Baberton”等。我希望一旦他们做出选择,这将成为他们使用表单添加订单的以下时间的默认选择(这样他们就不必继续选择它)而且他们可以更改他们随时选择。希望这是有道理的。我正在使用简单表单 gem。提前致谢!:)

标签: ruby-on-railsrubysimple-form

解决方案


@史蒂夫

我会做几个假设。

1.) 你知道如何在 Rails 模板引擎中创建表单。2.) 您了解如何使用 Simple Form gem 创建下拉菜单

因此,根据您实际想要完成的任务,您有几个选择。根据您简要描述的内容,听起来您有某种电子商务/结帐情况,您希望自动完成以使用户更容易。

有几种方法可以存储这些数据。

保存用户数据。

1.) 将其保存在 District_of_last_order 下的用户模型上

2.) 将其保存在用户订购的订单模型上has_many。然后你可以拉出第一个订单的市区并选择那个

就我个人而言,我会倾向于#2,因为您可能希望能够将订单与用户紧密结合,并且两次保存该信息是多余的,因为您总是可以做类似current_user.orders.first.district或其他的事情,

在您构建表单的 ERB 中,您可以按照以下方式进行操作:

<%= simple_form_for(@order) do |f| %>

... other input fields 

<% if current_user.orders.first %>
  <%= f.input as: :select selected: current_user.orders.first.district %>
<% else %>
  <%= ... your regular dropdown menu here without the default  %>
<% end %>


... rest of your form

推荐阅读