Ruby on rails 为什么铁路歧视我的路线?
在my routes.rb文件中只有两行:Ruby on rails 为什么铁路歧视我的路线?,ruby-on-rails,ruby,routes,rake,Ruby On Rails,Ruby,Routes,Rake,在my routes.rb文件中只有两行: match 'movies/orderby/:field' => 'movies#orderby' 及 然而,当我在我的项目上运行rake routes时,我得到了一个有趣的输出,看: /movies/orderby/:field(.:format) {:controller=>"movies", :action=>"orderby"} movies GET /movies(.:format
match 'movies/orderby/:field' => 'movies#orderby'
及
然而,当我在我的项目上运行rake routes
时,我得到了一个有趣的输出,看:
/movies/orderby/:field(.:format) {:controller=>"movies", :action=>"orderby"}
movies GET /movies(.:format) {:action=>"index", :controller=>"movies"}
POST /movies(.:format) {:action=>"create",:controller=>"movies"}
new_movie GET /movies/new(.:format) {:action=>"new", :controller=>"movies"}
edit_movie GET /movies/:id/edit(.:format) {:action=>"edit", :controller=>"movies"}
movie GET /movies/:id(.:format) {:action=>"show", :controller=>"movies"}
PUT /movies/:id(.:format) {:action=>"update",:controller=>"movies"}
DELETE /movies/:id(.:format) {:action=>"destroy", :controller=>"movies"}
你知道我手工编码的路线和其他路线有什么不同吗?(它位于顶部)另外,Rails还没有为我创建url帮助程序
我一直收到以下错误消息:
未定义的方法“movies\u orderby”
…有什么想法吗
编辑:路由工作(即,如果我键入匹配的URL,它将正确路由),但我得到了否URL帮助器方法以放入我的视图 定义路由时,除非指定帮助程序的名称,否则方法
match
不会生成url帮助程序。因此,我建议您将其定义如下:
match 'movies/orderby/:field' => 'movies#orderby', :as => :movies_orderby
resources :movies
当您使用:as
定义路线名称时,如果您想按标题下单,则可以在视图中这样使用该名称
<%= movies_orderby_path("title") %>
另外,您已经在资源路由之前正确定义了匹配路由。另一种方法可能会导致问题。如果您更改顺序,它会改变吗?不会。Rake现在在底部列出了我的路线,但同样没有助手或HTTP Verb,这可能值得一提,以便Felipe可以自己帮助自己。一个:via=>:get
会让他得到路由列表中的动词。@Felipealmeda:对不起,我不能在没有问题的情况下取消提问,或者我可以吗?如果你要使用:via=>:get
也可以使用get
而不是match
。
<%= movies_orderby_path("title") %>