0

メソッドpdfdownloadを持つ「コース」コントローラーを指す、routes.rbに新しいルートを作成したいと思います。ルートは、course_id と user_id の 2 つのパラメーターを取ることになっています。私はそれが次のようであるべきだと思った:

get "/courses/pdfdownload/:course_id/:user_id"

上記の行を追加するまで、コースコントローラーとすべてが正常に機能します。コースコントローラーには、pdfdownload というメソッドがあります。それにもかかわらず、サーバー (rails s) を起動しようとすると、次のエラーが発生します。

warning: already initialized constant Mime::PDF
warning: previous definition of PDF was here
Exiting
`default_controller_and_action': missing :controller (ArgumentError)

rake:routes と入力すると、次のようになります。

missing :controller

コースコントローラーは存在し、多くの方法で非常にうまく機能しています。行を次のように変更した後:

get "/courses/pdfdownload"

サーバーが起動します。

Rails ガイドの「3.2 Dynamic Segments」では、次のように記述する必要があります。

get ':controller/:action/:id/:user_id'

ここで何が問題なのですか?どうもありがとうございました!

更新:ビューで次のリンクを使用しています:

<%= link_to "PDF", courses_pdfdownload_path(@course.id, user.id) %>
4

4 に答える 4

1

試すmatch "/courses/pdfdownload/:course_id/:user_id" => "courses#pdfdownload"

于 2013-08-03T17:32:17.753 に答える
1

ぜひお試しください

get "/courses/pdfdownload/:course_id/:user_id" => "courses#pdfdownload", :as => "courses_pdfdownload"
于 2013-08-03T18:23:33.000 に答える
1

エラーに関しては、

warning: already initialized constant Mime::PDF
warning: previous definition of PDF was here 

これは、Rails が 2011 年以降、デフォルトで PDF を登録しているためです。config に登録する必要はもうありません。

https://github.com/rails/rails/commit/d73269ba53992d8a01e5721aad3d23bc2b11dc4f

于 2016-01-01T20:36:15.060 に答える