嗨,我尝试使用 ancestry 和 rails 3.2 做动态下拉菜单,但对 javascript 没有太多经验。我有祖先树和广告(模型/控制器)的类别。广告应该有一个类别。所以我的想法是当我创建一个广告时,我将从下拉菜单类别中选择。例如,在类别中,我有
-汽车 - 阿尔法罗密欧 - -145 - -146 - 奥迪 - -A4 在选择汽车获取(阿尔法罗密欧,奥迪)之后,我应该如何更改或创建 javascript 以获取第一个 category.roots? 我尝试关注此链接 railscast但不知道如何更改 javascript。
javascript_controller
class JavascriptsController < ApplicationController
def dynamic_category @categories = Category.roots.all
结束结束
dynamic_category.js.erb
var categories = new Array();
<% for category in @categories %>
category.push(new Array('<%= category.title %>', <%= category.id %>));
<% end -%>
function categorySelected() {
category_id = $('ad_category_id').getValue();
children = $('ad_category_id').children;
children.lenght = 1;
categories.each(function(category) {
if (category.children[0] == category.id) {
children[children.lenght] = new Child(category[1], category[2]);
}});
if (children.lenght == 1) {
$('category_field').hide();
}else {
$('category_field').show();
}
}
document.observe('dom:loaded', function() {
$('category_field').hide();
$('ad_category_id').observe('change', categorySelected);
});
在此之后我应该在广告 _form.html.erb 中添加什么
<div class="field">
<%= f.label(:category_id, "Select Category") %><br >
<%= f.select(:category_id, @categories.collect {|s| [s.title, s.id]}, :prompt => "Select something") %>
</div>
<% javascript 'dynamic_category' %>