1

我从 rails 开始,在具有 2 个 id 的嵌套路由上遇到问题。

我提交的表格来自:

http://localhost:3000/admin/worlds/1/banks/new

我被重定向到:

http://localhost:3000/admin/worlds/23/banks/23 

(其中 23 是新银行的 id)

问题是我不能强制这个 urlid = 1在创建操作之后将第一个保留在第一个路由上。

我的Admin::Bank控制器在这里创建:

def create
  @world_bank = Admin::Bank.new(params[:admin_banque])
  @world_bank.world_id = params[:id]
  @world_bank.save!
  redirect_to admin_bank_path(@world_bank.world_id, @world_bank.id)
end

路线:

namespace :admin do
   resources :mondes do
      member do
        resources :banques
    end
  end
end

和耙路线:

admin_banks GET    /admin/worlds/:id/banks(.:format)          admin/banks#index
POST   /admin/worlds/:id/banks(.:format)          admin/banks#create
new_admin_bank GET    /admin/worlds/:id/banks/new(.:format)      admin/banks#new
edit_admin_bank GET    /admin/worlds/:id/banks/:id/edit(.:format) admin/banks#edit
admin_bank GET    /admin/worlds/:id/banks/:id(.:format)      admin/banks#show
PUT    /admin/worlds/:id/banks/:id(.:format)      admin/banks#update
DELETE /admin/worlds/:id/banks/:id(.:format)      admin/banks#destroy

事实是我看到了:

:id/thing/:id/stuff当我知道我应该得到:world_it/thing/:id/stuff

我尝试了不同的方式来使用重定向,尤其是redirect_to admin_banks(world_id, id)例如,但它保持不变。

我很确定这可以通过 routes.rb 中的匹配来解决,但我现在不能让它工作......

4

1 回答 1

3

摆脱嵌套资源周围的 :member 块,它应该可以工作。尝试:

namespace :admin do
  resources :mondes do
    resources :banques
  end
end
于 2012-08-13T18:13:31.493 回答