0

私のroutes.rbには、このリソースがありました

resources :home_screen_buttons do
    post :update_multiple, :on => :collection
end

update_multipleヘルパーはupdate_multiple_home_screen_buttons です

次に、コントローラーでupdate_multipleメソッドのみが必要なため、リソースを削除することにしました。そのため、routes.rb を次のように変更しました。

post "home_screen_buttons/update_multiple"

update_multiple_home_screen_buttonsの代わりにヘルパーhome_screen_buttons_update_multipleを作成します

ルーティング ヘルパー名が異なるのはなぜですか?

:on => :collection には :on => :member とは異なるヘルパーがあることは理にかなっていますが、同じ動作のために :as => :update_multiple_home_screen_buttons を post メソッドに追加する他の方法はありますか?

4

1 に答える 1

1

これがRailsのやり方です。を使用するmatchと、URI をアクションにマップし、対応するヘルパー パスを controller_action_path として作成しますが、
コレクションとして使用すると、そのリソースの RESTful アクションになり、Rails によってコレクションに関連する論理名が付けられます。ここで例として引用されているように:

resources :photos do
  collection do
    get 'search'
  end
end

生成しsearch_photos_pathます。

あなたはこれを行うことができました:

resources :home_screen_buttons, :only => [:update_multiple] do
    post :update_multiple, :on => :collection
end
于 2013-05-13T10:12:24.390 に答える