从字符串创建seo友好的URL

imj*_*mjp 9 ruby-on-rails

嘿家伙我正在尝试从字符串创建一个URL友好链接.而不是example.com/Jessica Alba,我想要example.com/jessica-alba

如何获取link_to标签以将我链接到seo友好永久链接?

我还需要确保show方法只显示地址栏中的seo友好永久链接,并且只接受seo友好永久链接.

Tam*_*iev 31

最好的方法是使用参数化方法:

name = name.parameterize
Run Code Online (Sandbox Code Playgroud)

偏转#参数化

  • 是的,这是要走的路. (3认同)

Dex*_*Dex 4

您可以重写to_param模型中的方法。

因此,如果您有一个名为 的模型Celebrity,其中有一name列,您可以执行以下操作:

class Celebrity < ActiveRecord::Base

  def to_param
    self.name.downcase.gsub(' ', '-')
  end

end
Run Code Online (Sandbox Code Playgroud)

然后:

  jessica_alba = Celebrity.find_by_name("Jessica Alba")
  link_to "Jessica Alba", celebrity_path(jessica_alba)
Run Code Online (Sandbox Code Playgroud)

  • Rails 提供了一种方法来做到这一点,那就是“参数化”。因此,我建议您使用它并在模型上创建一个名为 **slug** 的新字段。然后在 slug 和构建它的方法上添加验证。例如:`before_validation :generate_slug def to_param slug end defgenerate_slug self.slug = name.parameterize end`然后在yout控制器中执行:`jessica_alba = Celebrity.find_by_slug(params[:slug])` (2认同)