我刚刚开始使用
Ruby on Rails来处理,并从特定视图中遇到了一个与控制器中的另一个操作相关联的问题.我几乎可以肯定这是我的routes.rb文件中的一个问题(或缺少代码),但是我认为我误解了这个文件的工作原理我要做什么我有一个解决方案,但很确定它不是“最好的方法”.
我有一个控制器叫做home,有两个动作,index(这是默认值)和newbill.里面的index.html.erb我有:
<h1>Home View</h1> <%= link_to "new",:controller => "home",:action => "newbill" %>
但是我收到路由错误:
No route matches {:controller=>"home",:action=>"newbill"}
做耙子路线给了我以下:
root / {:controller=>"home",:action=>"index"}
match 'home/newbill' => 'home#newbill',:as => :newbill
然后在我的index.html.erb我有这个:
<%= link_to "Name",newbill_path %>
而且现在这样按预期工作.我的问题是:
为什么这样做?幕后究竟发生了什么?
当然这不是最好的办法吗?为每个控制器/操作添加另一个匹配“home / newbill”…我想链接到似乎是垃圾的做事方式.
我真的很喜欢Ruby,但是在Rails的这个方面挣扎了一点…一般来说,路由搞乱了我的头脑!
任何帮助非常感激:D
谢谢,
插口
解决方法
您应该查看
Rails Routing guide.阅读将帮助您了解幕后发生的情况.