【问题标题】:Rails4 Multiple Ransack search on same controllerRails4 在同一控制器上进行多次 Ransack 搜索
【发布时间】:2014-09-30 23:50:38
【问题描述】:

我在我的事件模型上设置了 Ransack

在我的控制器中,我有三个动作,分别是索引、即将到来的和我的事件。 索引显示所有事件 即将到来的显示事件 myevents 显示用户自己的事件

由于它们在视图中看起来都一样,因此即将到来的和我的事件使用索引模板

class EventsController < ApplicationController

def index
  @q = Events.search(params[:q])
  @events = @q.result.includes(:address, user:[:address]).page(params[:page])
end

def upcoming
    @q = Card.future.search(params[:q])
    @cards = @q.result.includes(:address, user:[:address]).page(params[:page])
    render template: 'events/index'
end

def myevents
  @q = current_user.events.search(params[:q])
  @events = @q.result.includes(:address, user:[:address]).page(params[:page])
  render template: 'events/index'
end

end

注意未来的范围 范围:未来,-> { where('rdv >= ?', Date.today) } 结束

一切正常,除了在即将发生的事件或我的事件上单击“搜索按钮”后,搜索呈现 events#index 操作,因此忽略“未来”范围,就像 current_user 一样。

我知道我可以在路由中定义ransack search,并添加cards#search动作,但是

问题:如何在单击搜索按钮后使我的事件#upcoming 持久化?同样适用于 events#upcoming 和 events#myevents

也许我的逻辑是错误的。非常感谢您的帮助

请注意,我不使用 post,因为我将 will_paginate 与 ajax 一起使用,并且我只能使用 get 方法使其正常工作。

【问题讨论】:

    标签: search ruby-on-rails-4 filter ransack


    【解决方案1】:

    更改每个 search_form_for 以指定要加载结果的页面的路径,例如:

    <%= search_form_for @q, url: your_path do |f| %>
    

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 2019-01-02
      • 1970-01-01
      • 2023-03-15
      • 2018-09-23
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      相关资源
      最近更新 更多