2013-11-02 23 views
6

... I kullanıcıların öğeleri görebilmesini istemiyorum şovum rotayı özelleştirmek için çalışıyorum: id ... Raylar - Özel Kaynak Rotalar

Ben bir satış modeli var ve

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

guid bir uuid: Ben o olmak istiyorum, bunun yerine, kullanıcılar kimliğe göre satışlarını görebilmesini istemiyoruz,

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

Ama: gösterisi yoldur Nesne oluşturulduğunda üretiyorum:

gösteri eylemi için, sen geçirildi guid dan istediğiniz satış bulmak denetleyicinizdeki sonra

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

Ve:

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

nedir 'in

resources :sales, param: :guid 

: GUID', bazı alternatif id? – jvperrin

+0

Oluşturduğum bir UUID var (orjinal gönderiye daha fazla bilgi eklendi) – cmw

cevap

1

Sen routes.rb özel bir rol tanımlayabilir url:

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

/routes.rb

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

veya raylar 4 kullanırsanız yapabilirsiniz: denetleyici

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

Rayları 4 şekilde seviyorum! Teşekkürler – brookz