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/路径重复此操作