rails中的模型的默认URL?

时间:2010-01-04 03:12:25

标签: ruby-on-rails

我有一个课程

我希望每封帖子的默认网址为http://domain.com/9383,而不是http://domain.com/posts/9383

我试图在路线中修复它。我设法接受domain.com/222但是如果我使用<%= url_for(@ postts)%>我仍然得到domain.com/posts/222

我该怎么办?谢谢

3 个答案:

答案 0 :(得分:5)

您无法使用路线更改url_for(@post)的行为。如果向url_for实例传递了map.resourcesActiveRecord将采用# routes.rb map.post ":id", :controller => "posts", :action => "show" # named route post_path(@post) # full link_to link_to @post.title, post_path(@post) 设置。

你应该这样做:

{{1}}

答案 1 :(得分:0)

如果您使用url_for,则无法告诉它省略/posts/部分。我想你需要创建帮助器,可能在application_helper.rb

def post_url(post)
  "/#{post.id}"
end

答案 2 :(得分:0)

覆盖url_for似乎不被视为Rails中的最佳做法,尽管对我来说似乎非常方便。以下是自定义ApplicationControllerhttp://arjanvandergaag.nl/blog/generating-fancy-routes-with-rails.html

的说明