这个"posts_path"变量在哪里定义?

Dan*_*ark 4 ruby variables ruby-on-rails

我正在关注Rails 这个教程(看起来不错).我跑完之后

ruby script/generate scaffold Post
Run Code Online (Sandbox Code Playgroud)

然后此链接在erb文件之一中工作:

<%= link_to "My Blog", posts_path %>
Run Code Online (Sandbox Code Playgroud)

为什么?我在整个应用程序中查找了"posts_path",但无处可寻.另一方面,这个

<%= link_to "My Blog", home_path %>
Run Code Online (Sandbox Code Playgroud)

工作,它也是一个控制器.

posts_path定义在哪里?

Ott*_*tto 14

posts_path是您从添加的路线免费获得的命名路线script/generate scaffold.看到routes.rb你应该看到这样的东西:

map.resources :posts
Run Code Online (Sandbox Code Playgroud)

有关免费获得的其他命名路由的信息,请参阅API文档.

此外,您可以运行rake routes并查看您的所有routes.rb内容.

如果你想要一个名为route的home_path,你可以在这里添加一行routes.rb:

map.home '/home', :controller => "home", :action => "index"
Run Code Online (Sandbox Code Playgroud)

  • 一点很重要,posts_path是一个变量而不是一个方法. (3认同)