2012-10-02 35 views

回答

1

的Rails 2.3.1:

map.route_a 'my_controller', :controller => "A", :action => "a" 
map.route_b 'my_controller/uid/:uid', :controller => "B", :action => "b" 

你應該得到route_a_urlroute_b_url(:uid => uid)輔助方法來生成URL。它不完全是查詢參數,但它使用uid和兩個值。

的Rails 3.2.1:

match 'my_controller' => 'A#a', :as => 'route_a' 
match 'my_controller/uid/:uid' => 'B#b', :as => 'route_b' 

和輔助功能route_a_urlroute_b_url(:uid=>10)一應俱全。

Explnation:


在您看來,使用輔助函數生成URL

輔助功能:route_a_url()
生成的URL:http://localhost:3000/my_controller
地圖:Controller A, Action a

輔助函數:route_b_url(:uid => 10))
生成的URL:http://localhost:3000/my_controller/uid/10
地圖:Controller B, Action b

+0

都能跟得上....既導致':控制器=> 「A」,:動作=>「a」' – Ran

+0

你用':my_controller/uid /:uid'而不是':my_controller?uid =:uid'來試試嗎? – Samiron

+0

nope,仍指':controller =>「A」,:action =>「a」' – Ran