【发布时间】: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