我从 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 中的匹配来解决,但我现在不能让它工作......