2016-03-18 5 views
0

私はモデルを2つしか持っていません:インデックスをリストし(最後のチェックからすべての変更を見る)、テーブル内のすべてのアイテムを削除します。Rails 4.2.5は新しいコレクションルートを追加した後に経路を隠すことができません

そのように私は(のconfig/routes.rbを中)、削除のための新しいアクションを定義します。

resources :changes do 
    collection { delete 'delete_all' } 
end 

これは、(コントローラでDELETE_ALLアクションを作成した後に)正常に動作します。

resources :changes, :only => [ :index, :delete_all ] 

は残念ながら、これでも二行目で、資源が全く制約されない:私は唯一のインデックスと新しいものを必要とするので

次のステップは、公開されたルートを制限することです。

新しいアクションdelete_allを定義しないと、期待どおりに動作します。 [新しいインデックス、編集、表示、破棄、作成、更新]のようなカードアクションのみで動作します:

答えて

0

リソース:変更、:=のみ[:インデックス、:delete_all] rails resources: ":only => []"でカスタムアクションを追加することはできません。あなたはコレクションと共に使用します。

0

[OK]を見つけました。実際には、Railsは「手ごろな」ルートと「無駄な」ルートの違いになります。リソースの完全なものは7つのデフォルトのものであり、多くのメソッドはそれらのメソッドでのみ動作します。

最後に、私は、次のようにルートを定義し、これがうまく働いた:

GET '変更/' =>として、 '#インデックスを変更する': '変更'

削除 '変更/' => 'changes#delete_all'、 'delete_all'

関連する問題