首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >url_for是如何工作的- ransack和kaminari的问题

url_for是如何工作的- ransack和kaminari的问题
EN

Stack Overflow用户
提问于 2013-11-06 17:59:06
回答 1查看 604关注 0票数 1

我使用Rails 4和Ransack和Kaminari,我有这样的路线:

代码语言:javascript
复制
resources :domains do
  resources :backlinks do
    collection { post :search, to: 'backlinks#index' }
  end
end

我发现kaminari分页生成了错误的链接,如:

代码语言:javascript
复制
/domains/16/backlinks/search?page=2

而不是

代码语言:javascript
复制
/domains/16/backlinks?page=2

我研究了Kaminari的源代码,并看到它只使用带有params的url_for助手:

代码语言:javascript
复制
class Tag
  def initialize(template, options = {}) #:nodoc:
    @template, @options = template, options.dup
    @params = @options[:params] ? template.params.merge(@options.delete :params) : template.params
  end
  ...
  def page_url_for(page)
    @template.url_for @params.merge(@param_name => (page <= 1 ? nil : page))
  end
end

然后,我用我的观点测试了这个简单的代码:

代码语言:javascript
复制
= url_for params

(params是{"action"=>"index“、”控制器“”=>“反向链接、"domain_id"=>"16"})

是的,它产生了

代码语言:javascript
复制
/domains/16/backlinks/search

我的问题是为什么这个额外的收集路径(搜索)甚至不是“获取”对url创建的影响那么大.这“正常”吗?

我的第二个问题是如何摆脱问题,并以某种方式告诉Kaminari生成正确的链接,即使我保留了额外的路线。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 19:03:00

您的路由应该如下所示,以避免search

代码语言:javascript
复制
resources :domains do
  resources :backlinks
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19819327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档