2011-12-13 7 views
6

Uygulamamın tüm sayfalarında, geçerli sayfanın JSON sürümüne bir bağlantı istiyorum. Bunu yapmak için herhangi bir düzgün hileler? Karmaşık olduğu yerde, URL'ye ek '&' parametreleri dahil edildi.URL’yi JSON sürümüne dönüştürmek?

'/users' => '/users.json' 

'/users?page=1&per_page=5' => '/users.json?page=1&per_page=5' 

cevap

8

A değişikliklerle Get url for current page, but with a different format bu yanıt için ttribution:

Yardımcısı:

def current_url(new_params) 
url_for params.merge(new_params) 
end 

Bağlantı: Bağlantı için farklı olacağını, böylece

<%= link_to "JSON of this page", current_url(:format=>:json) 
+0

teklifte belirtildiği gibi, bunları kullanmadan önce paramları çoğaltmanız gerekir. Her neyse, kendi cevabınızı kabul etmekte özgürsünüz. –

+0

Farklı olan şey "url_for params.merge (new_params)" yerine "url_for: params => params.merge (new_params)" gerekliliğiydi. –

+0

Üzgünüm, 'birleştirme' yerine 'birleştir!' –

10

bu deneyin:

Yani URL'ler

olarak aktarılmış olacaktır

alternatif

(bu API doc görüldüğü gibi)

polymorphic_path(@user, :format => :json) 

:

user_path(:id => @user.id, :format => :json) 
+0

Ben her sayfada JSON sürümüne bağlantı gerekir Bu sayfanın yolu ve bir veya birçok ilişkili nesneye sahip olabiliriz. Geçerli sayfanın adlandırılmış yolunu bulmanın ve biçimlendirmenin bir yolu var mı: format =>: json? –

+0

[bu soru] (http://stackoverflow.com/questions/5913525/get-url-for-current-page-but-with-a-different-format) adresini bulduğumda, ihtiyacım olduğunda da –

+0

yardım etmeliyim yerel ayarı ayarlamak ancak geçerli sayfayı tutmak için, örneğin 'url_for (: locale =>: tr)' kullanın. ': Locale' ile çalışır, bu yüzden' 'format ' –