2012-03-03 7 views
0

と私は、単純な削除リンクを持っている:deleteメソッドが私に間違ったパスを与えるのはなぜですか?

= link_to "Delete", messages_path(message.id), :method => :delete

は私にエラーを与える:No route matches [DELETE] "/messages.316"

この問題を解決する方法は?

私が持っているルビー1.9.3p0のRails 3.1.1

マイroutes.rbを

resources :messages do 
    collection do 
     get :outbox 
    end 
    end 

私はmessage_pathにこれを変更したときに、私はwrong number of arguments (0 for 1)受け取る - > full_trace:https://gist.github.com/1967988
- >すべてのファイルを: https://gist.github.com/1967994

outbox_messages GET /messages/outbox(.:format)   {:action=>"outbox", :controller=>"messages"} 
      messages GET /messages(.:format)     {:action=>"index", :controller=>"messages"} 
        POST /messages(.:format)     {:action=>"create", :controller=>"messages"} 
     new_message GET /messages/new(.:format)    {:action=>"new", :controller=>"messages"} 
     edit_message GET /messages/:id/edit(.:format)  {:action=>"edit", :controller=>"messages"} 
      message GET /messages/:id(.:format)    {:action=>"show", :controller=>"messages"} 
        PUT /messages/:id(.:format)    {:action=>"update", :controller=>"messages"} 
        DELETE /messages/:id(.:format)    {:action=>"destroy", :controller=>"messages"} 

編集: と一緒にリリースしましたHow to destroy polymorphic model? Method destroy missing argument

+0

あなたのroutes.rbをファイルには何がありますか? –

+0

resources:messages – tomekfranek

+0

'rake routes'の出力は何ですか?あなたの 'Message'モデルはどのように見えますか? –

答えて

4

あなたはそれが単一のメッセージのパスであるため、message_path(単数形)を言う必要がある:あなたが間違ったURLヘルパーを使用している

link_to "Delete", message_path(message.id), :method => :delete 
+0

これは私のmessage_controllerです:https://gist.github.com/1967994 – tomekfranek

+0

@regedarek OK ...私の答えに問題はありましたか?あなたのコントローラコードを持っている必要はありません。 –

+0

はい、私はあなたの答えのコードを使用すると、私はこのエラーを受け取ります: '' '引数の数が間違っています(0の場合1)' ''フルトレース:https://gist.github.com/1968069 – tomekfranek

0

あなたはmessage_path(message)がmessages_pathではありません。 messages_pathはインデックスを返します。

1

link_toの2番目の引数としてmessage変数を渡すだけです。

例:

= link_to "Delete", message, :method => :delete 
+0

最良の答え;) – lucapette

+0

私はこの取得: '' '完全なトレースします。https:#<::0x000000036c3920> 0x000000036cc520#<クラス>のための' ''未定義のメソッド 'acts_as_messageable_message_path」//gist.githubを。 com/1967994#file_error + full + trace – tomekfranek

関連する問題