Bu nedenle, bir özelliğe sahip olanlar dahil olmak üzere özel karakterler içeren URL'ler oluşturmak için bir Rails URL yardımcısı (page_url
) kullanmaya çalışıyorum.Raylar url yardımcısı ve işaretlerini kodlamadı
(rdb:1) page_url('foo', :host => 'host')
"http://host/pages/foo"
(rdb:1) page_url('foo_%_bar', :host => 'host')
"http://host/pages/foo_%25_bar"
Ama bazı garip nedenle, ampersanlar çıkışı yapılmaz:
(rdb:1) page_url('foo_&_bar', :host => 'host')
"http://host/pages/foo_&_bar"
Ve onları-kaçış önceden, onlar bozuk olsun: Vakaların çoğu sen onları beklediğiniz gibi çalışır
(rdb:1) page_url('foo_%26_bar', :host => 'host')
"http://host/pages/foo_%2526_bar"
CGI::escape
, diğer taraftan, ince kaçırmaz:
(rdb:1) CGI::escape('foo_&_bar')
"foo_%26_bar"
Neler oluyor, bu konuda nasıl çalışıyorum? (gsub('&', '%26')
'dan daha güzel bir şeyle, yani.)
Hmmm .. Gerçekten, özellikle page_url (apidock web sitesine bakın) denilen bir ray yardımcısı bulamıyorum - doğru yöntem adının bu olduğundan emin misiniz? Bunun yerine url_for mu demek istediniz? –
"page" adlı bir ActiveRecord'um var, _url yardımcısı automagically oluşturuldu. – jpatokal
Ah - sağ. Bu açıklamanızdan kaynaklanmadı :) –