xxxx_path在rails上的ruby中意味着什么

时间:2014-06-16 03:19:52

标签: ruby-on-rails ruby

我尝试添加新的控制器和模型使用名称foo和foos_controller,希望foos_path可以重定向。不起作用。

这里的原始代码(工作):

href="<%= contacts_path %>"

添加新的控制器和模型遵循名称约定后,我尝试使用相同的(不工作):

href="<%= foos_path %>"

此联系人路径未在rb项目中的任何其他位置定义。 xxxx_path是什么意思以及如何使用它?

3 个答案:

答案 0 :(得分:1)

Rails遵循约定来处理应用程序的根

执行此命令时

rails g scaffold foo

它会与您的模型,控制器和视图一起生成路径。

它在routes.rb中生成一行

 resources :foo

此行可让您访问控制器的所有操作

例如:

foos_path: # redirects you to the  index page of your foos controller
new_foo_path: # redirects you to the create page of your foos controller etc.,

请浏览此链接以供参考:http://guides.rubyonrails.org/routing.html

答案 1 :(得分:0)

如果您转到终端并输入rake routes,它将列出您当前定义的路线。在左侧,您将拥有其前缀。例如,contacts可能会路由到ContactsController中的索引操作。

path后缀是一种引用代码中的路径的方法。

如果foos_path给你一个错误,那意味着你要么尚未为该资源定义该路由,要么你已经为其他人调用了该路由(如果你使用as:选项手动定义它)。

可以在Rails Guide for Routing找到更多信息。

答案 2 :(得分:0)

您最好阅读this documentation


路径助手

基本上,Rails的path_helpers旨在帮助您以最有效的方式为链接等定义路线。

底线是路径助手将获取config/routes.rb中定义的路由,然后允许您动态调用它们 - IE:

#config/routes.rb
resources :photos #-> photos_path

路径names通常来自您的controllers,允许您路由到其中的各种actions。由于Rails是以resourceful结构为基础构建的,因此默认情况下会为&#34;标准&#34;控制器动作:

enter image description here


<强>的link_to

为了有效地使用path helpers,您最好在cmd中使用rake routes命令,或者只需在应用的地址栏中输入无效的网址<\ n / p>

我注意到您在问题中使用了标准的HTML <a href="">标记。您将更适合使用Rails的link_to帮助程序:

<%= link_to "text", your_path %>