我目前在我的模型中覆盖了我的to_params方法
def to_param
normalized_name = title.gsub(' ', '-').gsub(/[^a-zA-Z0-9\_\-\.]/, '')
"#{self.id}-#{normalized_name}"
end
,网址显示为/posts/1-Hello-World-very-nice
是否有可能使它显示为/posts/1/Hello-World-very-nice
答案 0 :(得分:2)
您可以为此添加单独的路线,例如:
在您的路线文件中(假设Rails 3):
match 'posts/:id/:name' => 'posts#show', :as => "show_post"
然后在您的视图中,您需要使用以下内容生成正确的网址:
show_post_path(@post, :name => @post.normalized_name)
请注意,将其放入路径文件中的顺序非常重要,这样您的其他Post路径就不会被覆盖。