【发布时间】:2015-05-07 09:19:04
【问题描述】:
我在尝试创建友好的 URL 时遇到了一些奇怪的事情。
我有一个项目模型:
def to_param
"#{id}-#{name}".parameterize
end
这使我的项目 URL 包含“ID”和“名称”就好了:
www.domain.com/items/ID-name
我还有一个类别模型(项目属于类别和用户模型),其中我有与上面相同的 def to_param 但类别 URL 保持“不友好”不包括“名称”:
domain.com/categories/ID
我在类别表中有名称列,它有值。 我还将祖先用于类别模型。也许是 has_ancestry 导致了这个问题?
我尝试了以下但没有运气:
def to_param
[id, name.parameterize].join("-")
end
感谢您的建议!
【问题讨论】:
-
请注意,
to_param仅在您将资源传递给链接助手 (link_to(@user.name, @user)) 或使用to_paramuser_path(@user.to_param)时才有效,请确保您没有调用.id -
gem可以满足您对友好 id 网址的所有需求,friendly_id -
感谢#papirtiger,它把我带到了 apidock 并得到了解决方案 :)
标签: ruby-on-rails url ruby-on-rails-4 url-rewriting