0

Ruby on Rails のルーティングの問題を解決しようとしています。routes.rb ファイルの関連部分は次のとおりです。

resources :clients do
  resources :campaigns do
    resources :targets do
      member do
        post 'send'
      end
    end
  end
end

rake routesこれが含まれます:

send_client_campaign_target POST   /clients/:client_id/campaigns/:campaign_id/targets/:id/send(.:format) targets#send

ただし、POST/clients/1/campaigns/1/targets/30/sendは次のエラーを返します。

ArgumentError in TargetsController#send

wrong number of arguments (2 for 0)

エラー ページには、パラメータが次のように表示されます。

{"client_id"=>"1",
 "campaign_id"=>"1",
 "id"=>"30"}

何が問題なのですか?これはルーティングの問題であるというのは正しいですか? send メソッドはターゲット コントローラーに存在しますが、空のスタブ メソッドであり、この問題が引き続き発生しています。

ありがとう!

4

2 に答える 2

3

Object#sendRuby で定義され、Rails フレームワークで頻繁に呼び出されます。このメソッドをオーバーライドするのは悪い考えです。別の名前を選択する必要があります。

于 2012-12-27T00:09:46.037 に答える
0

パラメータを受け入れます。これは単なる引数エラーです。#send アクションで引数を取りません。

于 2012-12-27T00:18:35.080 に答える