Rails在URL

时间:2016-01-07 15:45:33

标签: ruby-on-rails ruby ruby-on-rails-4

我的路线中有以下内容:

match '/car-rentals(/:address)' => 'search#search', via: :get

我可以访问:

本地主机:3000 /汽车出租/蒙特利尔

显示蒙特利尔所有可用的汽车。

当我输入:localhost:3000/car-rentals/Montreal Quebec

我的网址变为localhost:3000/car-rentals/Montreal%20quebec

我希望它是:localhost:3000/car-rentals/montreal-quebec

我尝试在我的模型中使用to_param

class Search < ActiveRecord::Base
  def to_param
    "#{address.parameterize}"
  end
end

任何其他方法来实现这一目标?

另外值得一提。当我在binding.pry中粘贴to_param并重新加载页面时,它不会停止该过程,因此无法到达。

  def to_param
    binding.pry # on page load, not getting here
    "#{address.parameterize}"
  end

提前致谢!

1 个答案:

答案 0 :(得分:1)

有几个宝石可以为SEO友好网址生成slu ..

我过去曾使用https://github.com/norman/friendly_id,但效果很好。它还有非常有用的文档。

还有:https://github.com/Sutto/slugged