我什至不知道从哪里开始,所以如果有人能指出我的潜在方向,那将是有帮助的。
我的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/