Ruby on rails 从字符串创建seo友好的url

Ruby on rails 从字符串创建seo友好的url,ruby-on-rails,Ruby On Rails,我正在尝试从字符串创建URL友好链接。我要的不是example.com/Jessica Alba,而是example.com/Jessica Alba。我如何获得链接到标签链接到seo友好的永久链接 我还需要确保show方法只在地址栏中显示seo友好的永久链接,并且只接受seo友好的永久链接。您可以在模型中覆盖to_param方法 因此,如果您有一个名为名人的模型,它有一个名称列,您可以: class Celebrity < ActiveRecord::Base def to_par

我正在尝试从字符串创建URL友好链接。我要的不是
example.com/Jessica Alba
,而是
example.com/Jessica Alba
。我如何获得链接到标签链接到seo友好的永久链接


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

您可以在模型中覆盖
to_param
方法

因此,如果您有一个名为
名人
的模型,它有一个
名称
列,您可以:

class Celebrity < ActiveRecord::Base

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

end

看看我在网站上创建的has_permalink gem


该gem将帮助您解决此问题。

最好使用参数化方法:

name = name.parameterize

还有一个我碰巧喜欢的友好id。ILS提供了一种方法,可以
参数化
。所以我建议您使用它,并在您的模型上创建一个名为slug的新字段。然后在slug上添加验证,并使用方法构建它。例如:
在验证之前:生成\u slug def到\u param slug end def生成\u slug self.slug=name.parameterize end
然后在您的控制器中执行:
jessica\u alba=名人。通过\u slug(params[:slug])查找\u是的,这是一种方法。除非您想定制slug,类似于使用下划线而不是连字符。使用分隔符进行自定义,例如ID的Rails约定
“Tim.Cook”。参数化(“”“)=>“Tim\u Cook”
name = name.parameterize