【发布时间】:2012-11-02 18:57:27
【问题描述】:
所以我的 routes.rb 文件中有以下代码:
match "/movies/:id/find_similar_movies", :to => "movies#similar", :as => "find_similar_movies"
然后在一个haml页面中我有以下内容:
= link_to 'Find Movies With Same Director', find_similar_movies_path(:id=>@movie.id)
然后在我的控制器中:
def similar
movie=Movie.find_by_id([params(:id)])
@movie_title=movie.title
@similar_movies=Movie.find_all_by_director(movie.director)
end
在我写的similar.html.haml中:
%h2 Similar movies with #{@movie_title}
%ul
- @similar_movies.each do |movie|
%li = movie
= link_to 'Back to movie list', movies_path
当我按下= link_to 'Find Movies With Same Director', find_similar_movies_path(:id=>@movie.id)
我明白了:
参数数量错误(1 比 0)
Rails.root: /home/ubuntu/hw4_rottenpotatoes 应用程序跟踪 |框架跟踪 |全程跟踪
app/controllers/movies_controller.rb:10:in `similar'
请求
参数:
{"id"=>"6"}
怎么了?感谢您的宝贵时间...
【问题讨论】:
-
这很可能意味着您的
find_similar_movies操作中的某处存在错误,但如果没有完整的错误消息和匹配代码,则很难判断 -
find_similar_movies 操作是什么意思?我没有更多关于类似页面的代码
-
我的意思是
similar行动对不起。但是,是的,我们需要可以在浏览器或 Rails 服务器中找到的完整错误消息 -
另一种编写这样的路由的方法是在
resources :movies do块内;例如get 'find_more_similar', :on => :member'。这个快捷方式会通过 GET 自动识别路径 /movies/:id/find_more_similar,路由到 MoviesController 的 find_more_similar 动作,并生成 helper find_more_similar_movies_path。 guides.rubyonrails.org/routing.html#adding-more-restful-actions -
@AnthonyAlberto:你有什么发现吗?需要更多信息吗?我已将浏览器中显示的错误代码添加到我的初始帖子中。
标签: ruby-on-rails routes haml