我有一个由kaminari paginate
生成的url案例,因为url取决于条件。这是我的路线
concern :search do
scope '/search', as: :search do
get '/', to: 'users#search'
get '/schedule/:id', to: 'schedules#doctor', as: :schedule
end
end
concerns :search
scope :dashboard, as: :dashboard do
concerns :search
end
如您所见,:search
可通过/search
和/dashboard/search
访问。问题是,paginate @doctors
提供/search
基本上会转到search_path
,即使我在dashboard_search_path
(它应该提供/dashboard/search
路径)。
我的问题是,如何将自定义路径传递给paginate
?我希望paginate
在search_path
打开/search
时使用dashboard_search_path
,并在我/dashboard/search/path
时使用/search
。
您无需提供如何决定/dashboard/search
或paginate
,我只需要知道如何将其作为参数传递给{{1}}。 TA
答案 0 :(得分:0)
Kaminari接受分页参数,其中一个是params
用于链接。它在滑轨中的作用与url_for
相同。没有测试,但尝试在仪表板页面上应该可以。
paginate @doctors, params: { script_name: "/dashboard" }
来自url_for
的文档:
:script_name-指定相对于域根的应用程序路径。如果提供,则添加应用程序路径。
答案 1 :(得分:0)
使用 url
参数进行分页,并在 proc 中使用自定义代码来定义最终网址:
paginate @doctors, url: proc{|page| some_condition ? search_path : dashboard_search_path}