1

したがって、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)

私は得る:

引数の数が間違っています (0 に対して 1)

Rails.root: /home/ubuntu/hw4_rottenpotatoes アプリケーション トレース | フレームワーク トレース | 完全なトレース

app/controllers/movies_controller.rb:10:in `similar'

リクエスト

パラメーター:

{"id"=>"6"}

何が問題なのですか?お時間をいただきありがとうございます...

4

1 に答える 1

1

params(:id)params引数で呼び出されたメソッドを呼び出そうとしてい:idますが、これはどのように機能するかではありません。paramsハッシュのように扱う必要があり、ルックアップ構文はparams[:id].

試してみてくださいMovie.find_by_id(params[:id])

于 2012-11-02T20:44:31.737 に答える