Ruby on rails rails中的url优化?
您好,我想在rails中创建seo优化url。和stackoverflow中一样。 现在这是我的网址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即可 例如
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