2017-04-05 59 views
0

在我的路線Im做:Rails的路由重定向與綁定參數

get 'category/products/:product_hash(/:ref)', 
    to: redirect('/new_path/products/%{product_hash}%{ref}', status: 301) 

get 'new_path/products/:product_hash(/:ref)', 
    to: 'products#new', as: :new_product, defaults: {ref: 'print'} 

它未與%{}裁判工作,它返回:

「鍵{}裁判未找到」

我怎樣才能使這個「ref」在我的重定向的可選參數?

謝謝。

回答

0

你也想讓你的重定向路由的默認值爲ref。請注意,如果您希望默認值爲空白,則空字符串是有效的值。

您可能還需要移動/括號外 - 這是罰款,有結尾的斜線和移動這將有助於確保您的默認值是通過正確傳遞(即否則你將需要追加/,和可能會出現以雙斜線結尾的情況)。所以你可能會得到類似的東西:

get 'category/products/:product_hash/(:ref)', 
    to: redirect('/new_path/products/%{product_hash}/%{ref}', status: 301), defaults: {ref: ''} 

get 'new_path/products/:product_hash/(:ref)', 
    to: 'products#new', as: :new_product, defaults: {ref: 'print'} 
+0

太棒了,它的工作原理!謝謝! –