0

rails/ajax/jquery 的初学者,所以不确定如何实现。基本上,我有一个计划页面,其中显示了来自我的数据库的过滤结果(结果由多个参数过滤)。

我有一堆切换和下拉菜单,所有这些都采用相同的形式,并且具有需要传递给数据库以过滤结果的值。

我想在这些切换/下拉列表中的任何一个发生更改时查询数据库,并使用 ajax 更新结果列表。

结果,切换在planner/index过滤在Planner_controller中完成,它调用不同的模型restaurant.rb和activity.rb

{

class PlannerController < ApplicationController
def index
puts "these are params"
#Restaurant.create params[:restaurant]
#params[:restaurant]
b,g,a,l,t,loc = "b2", "g2", "a2", "l2", "t2", "newyork"
if(params[:budget] != nil)
  b= params[:budget]
end
if(params[:size] != nil)
  g=params[:size]
end
if(params[:age] != nil)
  a= params[:age]
end
if(params[:activity] != nil)
  l= params[:activity]
end
if(params[:tourist] != nil)
  t= params[:tourist]
end
if(params[:city] != nil)
    loc = params[:city]
end    

@lrestaurants = Restaurant.lsearching(b,g,a,l,t,loc)
@drestaurants = Restaurant.dsearching(b,g,a,l,t,loc)
@activities = Activity.searching(b,g,a,l,t,loc)
activitieslist = @activities
drestlist = @drestaurants 
lrestlist = @lrestaurants 
end

}

提前致谢!

4

1 回答 1

0

我之前给出了几乎相同的答案

唯一的区别是您需要呈现 erb 表单(我猜),但在我的示例中 - 它是 ActiveAdmin DSL

要呈现部分文本而不是内联文本,您需要完成两个额外的步骤

根据此更改渲染方法

 def change_flats
   @flats = House.find_by_id(params[:house_id]).try(:flats)

   respond_to do |format|
     format.js(render :layout=>false)
   end
 end   

并使用 JS 创建部分change_flats.js.erb,您需要替换当前页面的一部分

#change_flats.js.erb

$("#block_id").html("<%= render 'partial_with_necessary_html_here' %>")
于 2013-01-28T02:24:04.407 回答