Ruby on rails 在Rails路由中使用参数生成url

Ruby on rails 在Rails路由中使用参数生成url,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个范围内的路线: scope :path => ":db", :defaults => {:db => "default"} do resources :boxes end 产生 boxes GET /:db/boxes(.:format) {:db=>"default", :action=>"index", :controller=>"boxes"} POST /:db/boxes(.:

我有一个范围内的路线:

 scope :path => ":db", :defaults => {:db => "default"} do
   resources :boxes
 end
产生

    boxes GET    /:db/boxes(.:format)          {:db=>"default", :action=>"index", :controller=>"boxes"}
         POST   /:db/boxes(.:format)          {:db=>"default", :action=>"create", :controller=>"boxes"}
 new_box GET    /:db/boxes/new(.:format)      {:db=>"default", :action=>"new", :controller=>"boxes"}
edit_box GET    /:db/boxes/:id/edit(.:format) {:db=>"default", :action=>"edit", :controller=>"boxes"}
     box GET    /:db/boxes/:id(.:format)      {:db=>"default", :action=>"show", :controller=>"boxes"}
         PUT    /:db/boxes/:id(.:format)      {:db=>"default", :action=>"update", :controller=>"boxes"}
         DELETE /:db/boxes/:id(.:format)      {:db=>"default", :action=>"destroy", :controller=>"boxes"}
我希望能够调用box_url(例如),并让它从当前请求推断:db的值

例如:

请求“/lax/box”。在模板中,我调用box_url(@box),它生成url“/lax/box/1”(其中@box.id=1)

我目前看到的唯一解决方案是在url中始终包含params[:db],调用box_url(params[:db],@box)

有人知道如何获得我描述的行为吗?

这(在帮助文件中)应该可以:

def box_url(box)
    super(params[:db], box)
end
不幸的是,您必须对每个要覆盖的url/路径重复此操作