2012-03-24 19 views
7

Gönderilen formdaki bir param temel alınarak bir konuma yönlendirmeye çalışıyorum. Params [: route] = grup ise, gruplar_path'a yönlendirmek istiyorum. Yönlendirmek için aşağıdaki yöntemi denedim, ancak group_path'ın bir değişken değil, bir dize olması yeterli. Param üzerinden nasıl yönlendirebilirim?Dize yolu ile Redirect_to

redirect_to "#{params[:route]}s_path" 

Düzenleme: Ben gerçek yoluna yönlendirebilir ama çok bunu yapmanın yolu raylar gibi bu görünmüyor fark etti.

redirect_to "/#{params[:route]}s" 

cevap

12
redirect_to send("#{params[:route].pluralize}_path") 

Ama doğrusu params[:route] değerine göre uygun url yardımcı dönen bir sarıcı-yardımcı yazardım. params[:route] potansiyel olarak herhangi bir değere sahip olabilir ve bu durumlarda kurtarma yapmak isteyebilirsiniz.

+0

+ 1, mükemmel cevap .. –

+0

Katılıyorum, kafasına çivi çakıyor Birisi başka bir yola göndermeye çalışırsa, bir sorun olarak sayılır, ya kimlik doğrulamasıyla reddedilir ya da bir 404 sayfasına vurulur. Ben doğru bir plura olsun böylece bir yardımcı? – BookOfGreg

+2

redirect_to göndermek ("# {params [: rota] .pluralize} _path") kullanırsanız daha iyi olurdu lization – meredrica

2

gönderme özel yöntem, bu nedenle daha iyi

public_send aramaları olabilir ve bunun yerine "# {params [: Rota]} s" "# kullanmak {[: Rota] params .pluralize}

redirect_to public_send("#{params[:route].pluralize}_path")