2013-11-02 112 views
6

我想定製我的表演路線......我不希望用戶能夠通過查看物品:身份證...導軌 - 自定義資源路線

我有一種銷售模式,以及顯示的路線是:

sale GET /sales/:id(.:format)  sales#show 

不過,我不希望用戶能夠通過ID查看銷售,相反,我想它是:

sale GET /sales/:guid(.:format)  sales#show 

GUID是一個UUID我創建對象時生成:

def populate_guid 
    self.guid = SecureRandom.uuid() 
end 
+0

什麼是':guid',一些替代的ID? – jvperrin

+0

這是我生成的UUID(在原文中增加了更多信息) – cmw

回答

1

你可以在你的routes.rb定義自定義路線:

get "/sales/:guid", :to => "sales#show" 

然後在您的控制器,爲展會的動作,你會發現從已在通過​​你想出售網址:

def show 
    @sale = Sale.find_by_guid(params[:guid]) 
end 
9

在配置/ routes.rb中

get '/sales/:guid', to: 'sales#show' 

或者,如果你使用的軌道4,您可以:

resources :sales, param: :guid 

在控制器

def show 
    @sale = Sale.find(params[:guid]) 
end 
+0

我喜歡鐵軌4種方式!謝謝 – brookz