2016-04-05 8 views
1

HAML görünümlerimden tüm link_to çağrılarının ana bilgisayarını ve bağlantı noktasını değiştirmek istiyorum. Denetleyicim (ler) ine default_url_options'u uyguladım, ama asla çağrılmadı. ApplicationControllerApplicationController < ActionController::BaseRaylar 4 benim HAML görünümümden denetleyicimin default_url_options yöntemini çağırmıyor

olduğunu

class WelcomeController < ApplicationController 
    # ... 
    def default_url_options 
    { host: 'mysite.com:34567' } 
    end 
end 

olacak bu iş mi? Belki birisi bana çalışma örneğine işaret edebilir mi?

O yöntem ApplicationController içinde olmamalı Rails 4.2.4

+0

gibi Bence

module ApplicationHelper def link_to_asset(asset) "#{root_url}#{asset.path}" end end 
  • Kullanımı Oldukça büyük olasılıkla cevabı da bu soruya doğru yanıt: https://stackoverflow.com/questions/41737407/rails -default-url-options-için-değil-için-yol-yardımcı-raylar-hata? noredirect = 1 # comment70668750_41737407 – arrtchiu

  • cevap

    0

    Ok - Ben istediğim tam olarak nasıl işe ama could

    1. benim denetleyicisi link_to_asset için bir yardımcı oluşturun: makul bir çözüm bulmak etmedi. root_url'u kullanmak, denetleyicimde default_url_options tarafından döndürülene saygı duyar. Bu

      %li.link= link_to asset.name, link_to_asset(asset) 
      
    0

    kullanıyorum?

    Bu şekilde, tüm denetleyiciler varsayılan yollar ana bilgisayarını devralıp geçersiz kılar.

    Ayrıca documentation gelen not: Belirli bir istekte

    , yöntem aslında her oluşturan URL'den çağrısında değildir; performans nedenleriyle, döndürülen karma önbelleğe alınır, istek başına en fazla bir talep vardır.

    Ayrıca örneğin development.rb değiştirerek ve ekleyerek, oradan uygulamak için çevreyi değiştirebilirsiniz:

    Rails.application.routes.default_url_options[:host] = 'mysite.com:34567' 
    
    +0

    Ben de benim ApplicationController' içinde bir uygulama vardı ve asla ya denir. Rails.application.routes.default_url_options [: host] 'özelliğini kullanmak da hiçbir şeyi değiştirmiyor gibi görünüyor. – nielsbot

    +0

    Uygulamayı yeniden başlattınız mı? Ayrıca, eğer yaptıysanız, daha sonra bir "yaylı durdurma" yapmayı deneyin ve ardından uygulamayı tekrar başlatın. Bahar bazen işleri berbat eder. –

    +0

    Tamam - denetleyici kodumdan 'url_for' için çalışıyorum gibi görünüyor, ancak HAML görünümümde kullanmak istiyorum. Sorumu güncelleyeceğim. – nielsbot