我从rails开始,我在带有2个ID的嵌套路由上遇到问题。
我提交了一份表格:
http://localhost:3000/admin/worlds/1/banks/new
然后我重定向到:
http://localhost:3000/admin/worlds/23/banks/23
(23是新银行的身份证)
问题是我无法强制此网址在创建操作后将第一个id = 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
和rake路线:
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中的匹配修复,但我现在无法使其正常工作...
答案 0 :(得分:3)
摆脱嵌套资源周围的:成员块&它应该工作。尝试:
namespace :admin do
resources :mondes do
resources :banques
end
end