【发布时间】:2018-01-08 13:55:45
【问题描述】:
我有以下型号:
具有 :year、:model 和 :car_brand_id 字段的汽车。 CarBrand 只有一个 :name 字段和 has_many :cars。
在视图中,我有一个带有 ransack 的搜索表单,如下所示:
<%= search_form_for(@q, url: search_result_path) do |f| %>
<%= f.select(:year_eq, 1960..(Date.today.year+1), {prompt: 'year'}, class: "grey-text") %>
<%= f.collection_select :car_brand_id_eq, CarBrand.all, :id, :name, {prompt: 'brand'}, class: "grey-text" %>
<%= f.collection_select :model_eq, Car.models, :model, :model, {prompt: 'model'}, class: "grey-text " %>
<%= f.button "Search" %>
<% end %>
我想让表单搜索动态化,例如,如果用户在表单中选择特定年份,则下一个字段 (:car_brand_id) 仅返回选择之前选择的年份的选项,依此类推与下一个字段。提前致谢。
【问题讨论】:
-
没有“rails”方法可以做到这一点。您必须使用 Javascript 对您的 Rails 服务器进行 ajax 调用以获取内容,然后更新 DOM。谷歌“javascript ajax”、“javascript onchange 事件”和“使用 javascript 更改 DOM”开始。如果您熟悉它,我建议使用
jquery。当然,如果您遇到问题,您可以随时带着损坏的代码返回这里 - 我们很乐意帮助您修复它。
标签: jquery ruby-on-rails ruby ruby-on-rails-4