1

リソース ルート ヘルパー関数を使用しようとするとエラーが発生します

    <%= link_to_remote "Delete", {
        :method => :delete, 
        :url=> phone_numbers_url(phone_number_display.id), 
        :update => "section_phone"
        }%>

そして私のルートで私は持っています

       map.resources :phone_numbers

次のエラーが表示されます

 You have a nil object when you didn't expect it!
 The error occurred while evaluating nil.to_sym

私が使うとき

:url=> phone_numbers_url(:id => phone_number_display.id)

エラーは発生しなくなりましたが、不安定なURLが表示されます

 http://localhost:3000/phone_numbers?id=1

phone_number_display.id が null ではないため、このエラーがわかりません

4

4 に答える 4

2

ルートの単数バージョンが必要です。

phone_number_url(phone_number_display)
于 2009-03-28T17:04:33.693 に答える
1

フルパスの代わりに相対パス" "が表示されるため、phone_numbers_パスを使用することもお勧めします。(phone_number_display.id)/phone_numbers?id=1http://localhost.../..

于 2009-05-08T16:46:35.883 に答える
1

後続の引数はハッシュに変換されるため、{} で囲む必要はありません。link_to_remoteの API を参照してください。それが問題の原因かどうかはわかりませんが、最初に試すことです。

    <%= link_to_remote "Delete",
            :method => :delete, 
            :url=> phone_numbers_url(phone_number_display.id), 
            :update => "section_phone"
            %>

その後、それでも機能しない場合は、そのphone_numbers_url(phone_number_display.id)部分を調べて、期待どおりになっていることを確認します。

于 2009-03-28T08:25:41.383 に答える
0

このルートを作成したばかりの場合は、mongrel を再起動する必要があるかもしれません。

また、名前付きルートを再確認するために rake routes を実行することもできます。

于 2009-03-28T08:24:52.023 に答える