Javascript 将ajax中的参数发布到我的控制器?
我的索引页面上有几个按钮,它们不在表单中,充当地图上标记的过滤器 我正在尝试将筛选器选项作为参数发布到我的索引操作中 我怎么做这样的事Javascript 将ajax中的参数发布到我的控制器?,javascript,ruby-on-rails,jquery,Javascript,Ruby On Rails,Jquery,我的索引页面上有几个按钮,它们不在表单中,充当地图上标记的过滤器 我正在尝试将筛选器选项作为参数发布到我的索引操作中 我怎么做这样的事 function filterchanged() { $.post('/index.html.erb', { filter1: 'value1', filter2: 'false' }, function(result) { alert('successfully posted filter1=value1&key2=filter
function filterchanged()
{
$.post('/index.html.erb', { filter1: 'value1', filter2: 'false' }, function(result) {
alert('successfully posted filter1=value1&key2=filter2 to index.html.erb');
});
....
}
我的索引控制器操作如下所示:
def index
if params.has_key?(:filter1)
if params[:filter2]
@posts = Post.typeA
else
@posts = Post.typeB
end
else
@posts = Post.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
这是正确的方法吗?尝试在表单中添加两个名为filter1和filter2的隐藏字段(因此表单会将它们传递给控制器操作。对每个按钮使用onClick事件来更新各自的隐藏字段值,并在需要时切换这些值。您可以将隐藏字段默认为0或false或任何您想要的值
然后,在控制器操作中检查过滤器变量的值。索引操作的路径非常奇怪。
/index.html.erb
是索引视图的文件名,不打算以这种方式使用
要指向该操作,必须使用路由路径
打开一个终端,运行rake routes
,检查索引操作的正确路由。
所有路由都在/config/routes.rb
我想你应该看看这个: