我尝试添加新的控制器和模型使用名称foo和foos_controller,希望foos_path可以重定向。不起作用。
这里的原始代码(工作):
href="<%= contacts_path %>"
添加新的控制器和模型遵循名称约定后,我尝试使用相同的(不工作):
href="<%= foos_path %>"
此联系人路径未在rb项目中的任何其他位置定义。
xxxx_path
是什么意思以及如何使用它?
答案 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;控制器动作:
<强>的link_to 强>
为了有效地使用path helpers
,您最好在cmd中使用rake routes
命令,或者只需在应用的地址栏中输入无效的网址<\ n / p>
我注意到您在问题中使用了标准的HTML <a href="">
标记。您将更适合使用Rails的link_to
帮助程序:
<%= link_to "text", your_path %>