1

show アクションのないコントローラーがあります。

現在の破棄は次のようになります。

        <td><%= link_to 'Destroy', subscriber, :confirm => 'Are you sure?', :method => :delete %></td>

そのルートが存在しないため、{subscriber} を指すようにしたくありません。代わりに、購読者のインデックスに直接送信したい

        <td><%= link_to 'Destroy', subscribers_path, :confirm => 'Are you sure?', :method => :delete %></td>

ただし、これを行うと、次のエラーが発生します。

No route matches [DELETE] "/subscribers"

ここで何が間違っていますか?

アップデート:

これらは私のルートです:

   resources :subscribers
  match 'subscribe' => 'Subscribers#subscribe'
  match 'unsubscribe' => 'Subscribers#unsubscribe'
4

1 に答える 1

0

ルートが存在しないと言うように、リソースルーティングを使用していないと思います。つまり、おそらく次のようなものがあります

match 'subscribers' => 'subscribers#index', :via => :get
get 'subscribers' => 'subscribers#index'

rake routesこれらのどれも、アプリのルートから実行することで確認できる削除要求と実際には一致しません。

次のように調整して、一致させることができます。

match 'subscribers' => 'subscribers#index', :via => [ :get , :delete ]

また、これは情報が多ければ多いほど理にかなっているかもしれませんが、より伝統的な REST ベースのアプローチからの逸脱により、アプリケーションを維持する際に、不必要で混乱を招く可能性がある不明瞭さが生じる可能性があるようです。

于 2012-12-02T18:35:46.243 に答える