Ruby on rails rails中的url优化?

Ruby on rails rails中的url优化?,ruby-on-rails,plugins,Ruby On Rails,Plugins,您好,我想在rails中创建seo优化url。和stackoverflow中一样。 现在这是我的网址 http://localhost:3000/questions/56 我想把它做成这样:- http://localhost:3000/questions/56/this-is-my-optimized-url 我正在使用restful方法。 是否有任何插件可用于此功能。我知道您要求提供插件,但一个非常简单的方法就是在您的模型中重写to_param方法。您只需将seo名称附加到id即可 例如

您好,我想在rails中创建seo优化url。和stackoverflow中一样。 现在这是我的网址

http://localhost:3000/questions/56
我想把它做成这样:-

http://localhost:3000/questions/56/this-is-my-optimized-url
我正在使用restful方法。
是否有任何插件可用于此功能。

我知道您要求提供插件,但一个非常简单的方法就是在您的模型中重写to_param方法。您只需将seo名称附加到id即可

例如:

class Question < ActiveRecord::Base
  #has attribute name.

  def to_param
    "#{id}-#{name.parameterize}"
  end
end
你不需要对你的路线做任何事情


您的控制器仍有问题。查找(params[:id]),因为必须调用该参数,这将去掉名称并返回id。

我强烈建议查看该插件。这是一个很好的起点。我已经在生产中使用了几个月了,效果非常好


使用该功能使其成为一个非常可扩展的解决方案。此外,如果处理非ASCII字符,我建议将其与一起使用。

在传入的对象上定义对参数的调用的restful路由提供的_url和_path方法。因此,在本例中,show_question_path(@question)调用@question.to_param获取对象的id,并使用该id生成路由。ActiveRecord::find将获取该点上的id(12个示例)并在其上运行。函数将字符串开头的任何数字字符转换为整数,并忽略其余字符。谢谢,请更详细地解释一下?请看这里:
show_question_path(@question)
>> /questions/12345-my-question-name