我正在做伯克利软件即服务课程,而且无法找到创建“寻找类似电影的RESTful路线”所需的内容。
我在我的movies_controller中有这个:
def find_by_same_director
@movies = Movie.find_by_director params[:id]
end
我在routes.rb中尝试了尽可能多的变种:
match 'movies/find_by_same_director/:id' => 'movies#find_by_same_director'
但无论我做什么,当我运行黄瓜时,我都会遇到同样的错误:
No route matches
{:action=>"find_by_same_director",:controller=>"movies", :id=>1}
(ActionController::RoutingError)
我是Rails的新手,所以我想我无法正确理解将控制器操作识别为路由所必须做的事情。任何人都可以指出我正确的方向吗?
答案 0 :(得分:2)
你的config/routes.rb
应该有类似或类似的东西:
match '/movies/:id/directors' => 'movies#same_directors', :as => 'same_directors'
您的app/controllers/movies_controller.rb
应该有一个同名的行动!
def same_directors
end
你应该创建一个这样的视图:
`app/views/movies/same_directors.html.haml`
对于黄瓜,你的features/support/paths.rb
应该有这条线或者类似的:
when /^the Similar Movies page for "(.*)"$/
same_directors_path(Movie.find_by_title($1))
这是rails app cook recipe和用于了解exatcly路线的黄瓜设置!
答案 1 :(得分:0)
match 'movies/find_by_same_director/:id' => 'movies#find_by_same_director'
变为:
match '/movies/find_by_same_director/:id' => 'movies#find_by_same_director'