0

単一のリソースで機能する更新アクションのためにform_forに与える正しいURLを取得するのに苦労しています。

私のroutes.rbは次のとおりです。

scope "(:locale)", :locale => /en|fr/ do
  namespace :quickwizard, :module => 'quick_wizard' do
    resource :business, controller: 'business'
  end
end

次のルートを提供します。

     quickwizard_business POST   (/:locale)/quickwizard/business(.:format)          quick_wizard/business#create {:locale=>/en|fr/}
 new_quickwizard_business GET    (/:locale)/quickwizard/business/new(.:format)      quick_wizard/business#new {:locale=>/en|fr/}
edit_quickwizard_business GET    (/:locale)/quickwizard/business/edit(.:format)     quick_wizard/business#edit {:locale=>/en|fr/}
                          GET    (/:locale)/quickwizard/business(.:format)          quick_wizard/business#show {:locale=>/en|fr/}
                          PUT    (/:locale)/quickwizard/business(.:format)          quick_wizard/business#update {:locale=>/en|fr/}
                          DELETE (/:locale)/quickwizard/business(.:format)          quick_wizard/business#destroy {:locale=>/en|fr/}

とビューで:

= simple_form_for @business, url: quickwizard_business_path(@business), validate: true do |f|

更新用に誤ったURLを生成します(ただし、作成には機能します):

<form accept-charset="UTF-8" action="/15/quickwizard/business" ...

代わりに手動で正しいルートを配置すると、更新のために機能します。

= simple_form_for @business, url:"/quickwizard/business", html: { method: 'put' }, validate: true do |f|

だから私の質問は:これを行うための適切な方法は何ですか?私が置いたURLは作成アクションと更新アクションの両方で機能しますか?

4

1 に答える 1

0

問題は、単一のリソースではなく、ロケールにあります。でURLを生成してみてください

quickwizard_business_path(@business, locale: nil)
于 2012-10-02T08:42:23.417 に答える