【问题标题】:updating content using AJAX queries in rails在 Rails 中使用 AJAX 查询更新内容
【发布时间】:2023-03-19 12:41:03
【问题描述】:

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

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

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

结果,切换在规划器/索引中 过滤是在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

}

提前致谢!

【问题讨论】:

    标签: jquery ruby-on-rails ajax


    【解决方案1】:

    我之前给的几乎一样answer

    唯一的区别是您需要渲染 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' %>")
    

    【讨论】:

    • 我猜它类似,但我的查询结果是活动/餐厅列表。我不想在下拉列表中显示它,而是想用从这个列表中获取的 x 个条目来更新我的显示。该列表应在每次​​查询后更改。
    • change_flats.js.erb 应该去哪里?我的部分会是 _planner 吗?还是_update(我调用的方法)
    • 在我的示例中,partial 的名称是 'change_flats' - 因为这个名称具有在控制器中呈现 JS 的方法......如果你有控制器,我不知道,'cities' 并且需要城市页面更新餐厅列表,而不是您必须在 city_controller 中创建操作“change_restaurants”(例如在我的情况下,houses_controller 中的 change_flats)...根据 CRUD,更新操作用于更新数据库而不是页面
    猜你喜欢
    • 2011-06-28
    • 2012-04-22
    • 1970-01-01
    • 2020-02-29
    • 2016-06-27
    • 2019-12-24
    • 2018-01-28
    • 2014-12-30
    • 2020-07-27
    相关资源
    最近更新 更多