3

取り組んでいるプロジェクトに Rails 2.3.8 を使用していましたが、プロジェクトを Rails 3.0.3 に移行したばかりです。基本的なバグを解決した後、カスタム コントローラー メソッドで問題が発生しました。

gallery_controller には、「extract」というカスタム メソッドがありました。Rails 2.3.8 では、これは問題なく機能し、追加の構成はありませんでした。/galleries/extract/:id に移動すると、やりたいことが実行されます。

フォーム内の元のコードを使用してアプリへのリンクを作成しようとすると、そのコードによってアプリが壊れます。

<%= link_to "Add photos to gallery from: ",
        :action => 'extract', :id => @gallery.id %>

このコードを含むページに移動しようとすると、次のエラーが表示されます。

No route matches {:action=>"extract", :controller=>"galleries", :id=>2}

routes.rb を見た後、これが失敗したのではないかと疑うようになりました。

match ':controller(/:action(/:id(.:format)))'

は含まれておらず、実際には推奨されていません。

rake タスクの実行 | grep 'extract' では何も得られません。

では、どうすればこれを修正できますか?

4

1 に答える 1

4

ルーティング ガイド: RESTful アクションの追加 を参照してください。次のような方法で、抽出アクションに関するアプリケーションのルートを伝える必要があります。

resources :gallery do
  get 'extract', :on => :member
end
于 2010-12-16T18:39:25.670 に答える