我有一个显示产品类别类型的select_tag。当用户选择产品类别并列出select标签下方div中的所有产品时,我想进行Ajax更新。
我想我能用部分和js模板处理产品展示部分。但我不知道如何实施
产品类别选择 对rails控制器执行ajax请求(带参数)。 (Web中的几乎所有示例都与ajax表单更新绑定....)
有人可以帮助我 - 提前谢谢
我正在使用rails 3,Jquery
欢呼声
sameera
答案 0 :(得分:4)
如果您向我们提供有关您的数据模型的更多信息,将会很有帮助。我会根据你的问题勾勒出我认为你的想法。
class Product < ActiveRecord::Base
belongs_to :category
end
class Category < ActiveRecord::Base
has_many :products
end
并假设您已设置路线:
resources :categories do
resources :products
end
您需要做的是汇总change
的{{1}}事件,以根据所选的类别ID请求产品列表。
select_tag
我编写了一个jQuery plugin来简化与Rails控制器的基本RESTful交互,因此它可以写成:
$('select#categories').change(function(){
var category_id = $(this).find('option:selected').val();
$.getJSON(
'/categories/' + category_id + '/products',
function(response) {
// render your template on the page here
}
);
});
虽然$('select#categories').change(function(){
var category_id = $(this).find('option:selected').val();
$.read(
'/categories/{category_id}/products',
{ category_id: category_id },
function (response) {
// render your template
}
);
});
并不比$.read
简单得多,但其他操作可以为您节省大量的内容。
其余的实现都在控制器中,但是你在如何实现它方面有更多的余地,所以如果没有更多信息,我无法猜测对你有什么帮助。