Sadece JS formatıyla erişilebiliyorsa kullanabileceğim bir dizi kaynağım var. Rayların rota kaynakları bana formatları artı standart HTML verir. Sadece JS formatı yollarının oluşturulmasının bir yolu var mı?Raylar Rotaları - Bir kaynağa ait kullanılabilir biçimleri sınırlandırma
cevap
sadece biçimi hakkında kısıtlamaları ekleyin:
resources :photos, :constraints => {:format => /(js|json)/}
Yanlış bir şey yapmıyorsam, bu hala/photos: html dosyasına erişmeme izin veriyor. Eksik bir yol istisnası beklediğimde eksik şablon mesajını alıyorum. Düşünceler? –
Bu,/(js | json)/'olmalıdır? – Garrett
Evet, bunu yakaladım ve değiştirdim. Hala benim için çalışmıyor. Kaynaklarım var: üyeler,: controller => 'homes/members',: constraints => {: format =>/js /} –
isteğin biçimi MIME::JS
olmadıkça bir yönlendirme hata başlatan bir before_filter
kullanabilirsiniz.
app/kontrolörleri/application_controller.rb: Bir kapsamda bu rotaları sarmak gerekir raylar Action Controller Guide
I ' ve bu tür bir problemle başa çıkabilmek için benzer bir yaklaşım kullanmışlardır. https://github.com/marcusg/force_format – marcus3006
kaplı olarak
class ApplicationController < ActionController::Base
before_filter :check_js
private
def check_js
raise RoutingError.new('expected application/json') unless request.format == MIME::JS
end
end
:only
, :except
ve :skip_before_filter
ile daha ameliyatla bu filtreyi uygulayın. Kısıtlamalar maalesef bu durumda beklendiği gibi çalışmıyor. Bu tür bir bloğun bir örnektir
...
scope :format => true, :constraints => { :format => 'json' } do
get '/bar' => "bar#index_with_json"
end
fazla bilgi burada bulunabilir
: o kadar almaz nasıl
# routes.rb
class OnlyAjaxRequest
def matches?(request)
request.xhr?
end
end
post "/test/suggestions", to: "test#suggestions", :constraints => OnlyAjaxRequest.new
Bu cevap olarak işaretlenmelidir. –
Eğer 'kaynakları' kullanıyorsanız, bir kapsam bloğuna ihtiyacınız yoktur, sadece ': format => true' ve': kısıtları => ... 'doğrudan' kaynaklar' aramasına ekleyin. – Nathan
Bu durum, kapsamlı bir rota için benim durumumda çalıştı.'kaynaklar: fotoğraflar, format: true, kısıtlamalar: 'json' – maicher
kontrolör. railsadventures
Yukarıdaki çözümlerin hiçbiri benim için işe yaramadı. Bu çözüm ile gidiş sona erdi: Eğer json
daha sadece bir ya da bir başka gerekiyorsa ben seçenek aşağıda size sunuyoruz
post "/test/suggestions", to: "test#suggestions", :constraints => -> (req) { req.xhr? }
https://railsadventures.wordpress.com/2012/10/07/routing-only-ajax-requests-in-ror/#comment-375
Bulundu (cant kullanımını #xhr?
)
resource :offers, only: :show, format: true, constraints: { format: 'pdf' }
Yardım edin umarım
- 1. Raylar rotaları mantık
- 2. Raylar rotaları senkronizasyon dışı görünüyor
- 3. Raylar i18n ve rotaları javascript'te
- 4. Raylar: Kaynağa özel eylem ekle
- 5. Raylar i18n özel hata doğrulama biçimleri
- 6. raylar - Kalıtım sınıfı başka bir modele ait
- 7. Kısaltma Rayları Rotaları
- 8. Delphi: TCP bağlantılarını sınırlandırma
- 9. Google Grafikler Tarih Biçimleri
- 10. Haftalar için tarih biçimleri
- 11. Yuvalı yolları kullanma Ana kaynağa erişim izni vermeden raylar 3
- 12. Desteklenen Dosya Biçimleri UIWebView
- 13. SED'yi bir satırın ilk 10 karakteriyle sınırlandırma
- 14. Nesne çerçevesiyle sorgu boyutunu sınırlandırma
- 15. MySQL tarih biçimleri - zorluk Bir tarih ekleme
- 16. Akış çerçeveler, parke dosya biçimleri
- 17. Laravel'de kayıtlı rotaları görüntüleme
- 18. laravel5 rotaları oluştur
- 19. Oynat Çerçeve Rotaları çalışmıyor
- 20. HyperlinkButton dahili kaynağa göre
- 21. Rails, rotaları eşleşen sorgu parametreleriyle eşleştiriyor
- 22. Spring OAuth 2: bir kaynağa genel erişim
- 23. İsim alanı rotaları kullanırken rota hataları
- 24. linux üzerinde işlem belleği/CPU kullanımını sınırlandırma
- 25. Tüm gözlenebilirlikleri varsayılan olarak sınırlandırma oranı
- 26. Bir Kullanıcı Ait Ait Gönderilerin Silinen Kullanıcıya Silinmiş Olduğunu Bildirin
- 27. Yuvalanmış kaynak ile rotaları yönlendirir
- 28. ServiceStack: Rotaları dinamik olarak ekleme
- 29. Tüm bilgisayarlarda JAR'daki kaynağa erişilemiyor
- 30. Chrome için desteklenen ses dosyası biçimleri?
Hangi Rails versiyonunu kullanıyorsunuz? – Garrett
Cevabımı aşağıda kabul edebilir misiniz, doğru olanı, mevcut seçilmiş cevap yanlış ve toplumu karıştırıyor. – koonse