ruby-on-rails - 如何在 Rails 表单中创建一个下拉菜单,用户可以在其中更改默认值?
问题描述
我想在我的 Rails 表单中有一个下拉菜单,用户可以在添加订单时选择城市的一个区域,例如“Marchmont”、“New Town”、“Baberton”等。我希望一旦他们做出选择,这将成为他们使用表单添加订单的以下时间的默认选择(这样他们就不必继续选择它)而且他们可以更改他们随时选择。希望这是有道理的。我正在使用简单表单 gem。提前致谢!:)
解决方案
@史蒂夫
我会做几个假设。
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
推荐阅读
- python - 无法读取使用 soffice 命令转换 pdf 后得到的 .docx 文件
- python - Sqlalchemy:无法执行同步规则(在多对多关系中)
- arrays - 在 WindowsForm 中使用带有 DisplayArray 方法的泛型
- parse-error - ijson 因尾随垃圾解析错误而失败
- node.js - Node.js Socket.io 从不同的名称空间调用函数
- angular - 工具栏/离子按钮外的 Ionic 4 圆形图标仅按钮
- c - 在 C 中动态创建文件名
- reactjs - 带有反应的套接字 io:从服务器发射到特定用户
- javascript - 无法在本机反应中使用 AsyncStorage 保存用户名
- python - 用 Python 中另一个列表中的字符串替换列表中的数字