Ruby on Rails - 在填写表单时更新 collection_select

Posted

技术标签:

【中文标题】Ruby on Rails - 在填写表单时更新 collection_select【英文标题】:Ruby on Rails - Update collection_select while filling out the form 【发布时间】:2016-08-07 03:16:57 【问题描述】:

我的应用程序工作正常,因为我有 4 条记录,我的表单中已经有相同的字段(:family_with),用户需要填写 :name

(PS:我使用的是嵌套表单和茧宝石)

这是我的表格:

= f.simple_fields_for :families do |family|
   = f.text_field :name
   = f.collection_select :family_with, Family.where(family_id: @family), :id, :name, include_blank: "Choose a name"

我正在寻找的是,如何在每次填充 f.text_field :name 时更新 collection_select :family_with,以便我的 collection_select :family_with 可以填充已插入每个中的 名称 = f.text_field :name.

我已经读到我可以使用 ajax 或 jQuery 来完成,但我会很感激任何代码解决方案。

【问题讨论】:

由于您希望family_with 输入根据text_field 值动态更新,因此您必须发送AJAX 或使用其他javascript 【参考方案1】:

是这个吗?

= f.collection_select :family_with, Family.all.where(family_id: @family), :id, :name, include_blank: "Choose a name",selected: f.object.family_with

【讨论】:

Tnx,不,我不想显示selected。我想在用户以相同的表单/页面插入name 时更新collection_select【参考方案2】:

不确定您认为什么是“代码解决方案”,但如果您的意思是通过 ruby​​/rails,那么您至少必须提交表单以获取 collection_select 中的任何更新

当我不得不对依赖/动态选择菜单做一些事情时,这个页面对我非常有用(涉及 jQuery):http://blog.kate-travers.com/dynamic-duos-dependent-select-with-jquery-and-rails/

【讨论】:

以上是关于Ruby on Rails - 在填写表单时更新 collection_select的主要内容,如果未能解决你的问题,请参考以下文章

通过单击 Ruby on Rails 中的按钮生成表单

如何使用 Ruby on Rails 5 将数据从 URL 提取到表单中

如何使用相同的表单在 ruby​​ on rails 中创建和编辑

Ruby on Rails 使用标签

Ruby on Rails:提交表单时“您想要的更改被拒绝”

如何使用用户定义的字段数制作表单? - Ruby on Rails