ruby-on-rails - 如何在选择输入中进行收集取决于另一个选择输入的值

标签 ruby-on-rails forms simple-form

我什至不知道从哪里开始,所以如果有人能指出我的潜在方向,那将是有帮助的。

我的Rails应用程序中有一个带有两个选择输入的表单。

这是独立选择

<%= collection_select(:pass, :route_id, Route.all, :id, :name) %>

这是依赖选择
<%= collection_select(:pass, :afternoon_trip, Trip.all, :id, :departure) %>

现在,每个路线(来自独立选择路线)都具有与之关联的多个行程。 “行程(从属)”选择将所有行程显示为选项。

我只想在“行程”中显示,仅选择属于所选路线的行程。有关如何执行此操作的任何想法?

我也想在有人更改路线选择时更改旅行选项,但这是次要问题。

谢谢!

最佳答案

我想您想用ajax解决这一问题。获取所选选项的ID,将其发送到 Controller ,然后根据 Controller 发送回的数据呈现新菜单。伪代码和coffeescript可能看起来像:

# javascript
selectMenu = $('menu selectors')
selectMenu.mouseUp ->
  selectedId = // get menu's selected id
  $.ajax "path/to/populate_dependant?selected_id=" + selectedId


# controller
def populate_dependant
  id = params[:selected_id]
  @collection = Model.where(attribute: id)
  respond_to do |format|
    format.js {}
  end
end


# populate_dependant.js.erb
// write javascript to append the following to your form:
<%= f.label :model %>
<%= f.collection_select :model_id, @collection, :id, :attribute_name, :prompt => "Select something" %>

关于ruby-on-rails - 如何在选择输入中进行收集取决于另一个选择输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193203/

相关文章:

html - 将格式文本保留在文本区域栏中?

java - 提交之前进行 Spring 验证(Method.GET)

python - Django 表单,重写 init,变量范围

php - 如何从表中选择并在 codeIgniter 中编辑信息

css - 如何使用 CSS 使 simple_form 输入字段变宽?

ruby-on-rails-3 - Rails 3 + 简单表单 : Specifiy label class when using f. 关联

ruby-on-rails - Rails 4:无法更新多态对象

ruby-on-rails - 将小数和整数相乘 ruby​​ on rails

python - 部署 Django

css - 垂直简单形式的错误