2016-03-18 20 views
0

Güncelleme: Reimbursements New ActionÖzel Raylar rota

içinde yerine

@company = Company.find(params[:company_id] Ben Bu name ile URL'de id yerini @company = Company.find_by_name(params[:company_id]

kullanılan ancak yine de en /reimbursements/new gerektirir URL'nin sonu. Düşüncesi olan var mı?

genel: Bir Companies kumanda/modeli ve

bir Company has_many reimbursements

bir Company da bir name sahip bir Reimbursements kumanda/modeli var

Sayı: zaman bir Yeni şirket reimbursements formuna bağlantı oluşturdu

localhost:3000/companies/:id/reimbursements/new 

Bu URL çok uzun ve olmasını tercih ediyorum:

localhost:3000/companies/company.name 

bu mümkün mü? Bunu yapmak için nasıl giderim? Şimdiden teşekkürler!

+0

ile paramiklerden geçirilemez. İstediğinizi kullanabilirsiniz. Rotalar sadece normal ifadelerdir. Ancak asıl soru iyi bir fikirse. Kısa URL'ler bir pazarlama fadidir. – max

+0

Gönderdiğim Güncellemeyi kontrol edebilir misiniz? Herhangi bir içgörü takdir ediyorum – szier

cevap

0

Şirket Modeline bir permalink alanı eklemek isteyebilirsiniz.

Sonra Şirket kimliği Kimliği yerine permalink olmak bulmak, denetleyici Şimdi

localhost:3000/companies/:permalink/reimbursements/new 

olarak yolları kullanırlar.

0

O kadar bunu geçersiz olabilecek yolları üzerinde bu koymak emin olun görür o eylem belli bir denetçi eylemine ilk rota rota yapmaya

get /companies/:name => reimbursements#new

Raylar varsayılan olacağını düşünüyorum (yani sahip olabileceğiniz geri ödeme yolları). Max'in önerdiği gibi, bu büyük bir form değil ve şirketler kimliği bu yapıda

+0

Sizin yönteminiz benim için işe yaramadı. Gönderdiğim güncellemeyi kontrol edebilir misiniz? – szier

+0

Peki ya işe yaramadı? Ayrıca 'Company.find_by_name (params [: company_id])' kesinlikle çalışıyor? AR adına bir şeyi bir ad aramak ve ona bir kimlik vermek olduğunu söylüyorsunuz. – SomeSchmo