我需要一个更完整的示例,说明如何根据 Ruby on Rails 中第二个选择框的结果更新选择框。我已经在这里问过了。我已经阅读了该帖子的反馈,但没有任何运气弄清楚这一点,我已经尝试了几个小时。有人知道更好(更完整)的例子吗?
问问题
1464 次
1 回答
1
这通常在 Javascript 中处理。我不是特别喜欢编写 Javascript,所以我在我的应用程序中为此做的是使用 form_observer(一个 Rails 助手,它使用 Prototype Javascript 库来监视表单的输入更改)并更新 HTML 中的 DIV 包含第二个选择框,基于 AJAX 调用的结果。由于 AJAX 与我的服务器对话,我可以在 Ruby 中编写任意复杂的逻辑来呈现新的 HTML。
示例代码:
#goes in view
<%= Code to render the first list box. %>
<%= render :partial => 'second_list_box_partial', :locals => {:selected = insert_magic_here } %>
<%= observe_field(:first_list_box,
:url => { :action => :second_box_ajax }),
:frequency => 0.5,
:update => :second_list_box_div,
:with => %Q| 'value=' + $('first_list_box').value; |
%>
#goes in controller
def second_box_ajax
first_box_value = params[:value]
#magic goes here
@selected = #more magic
render :partial => 'second_list_box_partial', :locals => {:selected => @selected}, :layout => false
end
#goes in partial
<div id="second_list_box_div">
Actual code to render list box goes here.
</div>
于 2009-12-18T04:51:22.590 回答