如何在Rails中进行动态下拉?

时间:2011-04-08 04:46:44

标签: javascript ruby-on-rails ruby ruby-on-rails-3 spree

我正在开发一个电子商务项目,其中将有用于选择尺寸的单选按钮。我有一个数量下拉列表。我想根据用户所选尺寸的库存使这个下拉动态。任何人都可以告诉我如何在Rails上做到这一点?没有用大量的javascript混乱我的视图文件!?

1 个答案:

答案 0 :(得分:2)

如果您正在使用Rails 3 with prototype(默认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 %>