0

我正在学习伯克利软件即服务课程,但无法确定创建“查找类似电影的 RESTful 路线”所需的内容。

我的电影控制器中有这个:

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'

但是无论我做什么,当我运行我的 Cucumber 时,我都会遇到同样的错误:

No route matches
{:action=>"find_by_same_director",:controller=>"movies", :id=>1}
(ActionController::RoutingError)

我是 Rails 的新手,所以我想我只是没能正确理解要将控制器动作识别为路由必须做什么。谁能指出我正确的方向?

4

2 回答 2

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 应用程序烹饪食谱和黄瓜设置!

于 2012-08-12T17:28:42.013 回答
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'
于 2012-08-11T18:10:50.017 回答