【发布时间】:2023-07-07 03:50:02
【问题描述】:
我正在从事一个电子商务项目,其中将有用于选择尺寸的单选按钮。我有一个数量的下拉菜单。我想根据用户选择的尺寸可用的库存使这个下拉列表动态化。谁能告诉我如何在 Rails 上做到这一点?没有用大量的 javascript 弄乱我的视图文件!?
【问题讨论】:
标签: javascript ruby-on-rails ruby ruby-on-rails-3 spree
我正在从事一个电子商务项目,其中将有用于选择尺寸的单选按钮。我有一个数量的下拉菜单。我想根据用户选择的尺寸可用的库存使这个下拉列表动态化。谁能告诉我如何在 Rails 上做到这一点?没有用大量的 javascript 弄乱我的视图文件!?
【问题讨论】:
标签: javascript ruby-on-rails ruby ruby-on-rails-3 spree
如果您使用带有原型的 Rails 3(默认为 afaik),您可以使用原型遗留助手 (Link on Github) 添加观察者并为下拉框呈现局部视图。你可以像这样添加一个观察者
<%= observe_field 'element_var_name',
:url => { :action => "another_action_here" },
:update => "div_tag_to_update",
:with => "'selected='+ escape($('element_var_name').value)" %>
请务必根据您的情况调整element_var_name 和操作。 div_tag_to_update 是将使用下拉框更新的 div。 another_action_here 操作应呈现如下视图:
def call_ids_by_type
@element_list = ... # whatever fits for you, like: [[key, value],[key, value]]
render :layout => false
end
在局部视图中,可以使用元素列表生成下拉框:
<%= f.select :var_name, @element_list %>
【讨论】: