我在我的应用中添加了类别,并尝试在链接中获取丑陋的ID。 (我在Rails 4 )
没有多少运气。
目前我有
http://localhost:3000/categories/1
每个类别都有一个名称,如何更改类别链接以显示该类别的NAME
而不是ID
。
e.g。
http://localhost:3000/categories/atoms
答案 0 :(得分:3)
您应该实施Category#to_param
方法:
def to_param
name
end
此方法在Rails内部用于为您的资源生成适当的URL。更多信息:
http://apidock.com/rails/ActiveRecord/Integration/to_param
不要忘记改变
Category.find(params[:id])
为:
Category.find_by_name!(params[:id])
因为从现在开始,您将使用名称而不是id搜索正确的类别。
答案 1 :(得分:2)
尽管Marek Lipka的回答是正确的并且可行,但我通常喜欢使用gem friendly-id来为我做这件事。它有一些额外的好处,在下面的链接中提到。
Ryan Bates也在Railscasts #314覆盖了它。