2017-09-13 5 views
0

Ich habe Probleme mit link_to auf meine Posts/Index Seite zu gehen. Ich habe folgendes link_to:Wie man link_to benutzt, um zu einer Subdomain zu gehen

<%= link_to('NEWS', posts_path(subdomain:"news"),:class=>'navtext',:style=>"color:#bfbebc!important;") %> 

Meine Routen:

resources :posts , constraints: { subdomain: 'news' } 

Wenn ich http://news.lvh.me:3000/posts bin (die aktuelle Seite der link_to bezeichnet), um die Verbindung funktioniert, aber wenn ich auf einer anderen Seite platzieren (zum Beispiel der root_path) es funktioniert nicht. Ich bekomme den No route matches [GET] "/posts" Fehler, der meiner Meinung nach bedeutet, dass die Subdomain in meinem link_to nicht übergeben wird. Irgendwelche Ideen, wie ich das machen kann? Vielen Dank.

Antwort

1

Versuchen Sie posts_url statt posts_path.

Es funktioniert gut in meinem Projekt auch ohne (subdomain:"news"). Verwenden Sie einfach posts_url direkt.

1

Wenn nichts funktioniert sonst könnte man einfach die Helfer ganz überspringen:

def subdomain_link 
    Rails.env.development? ? '//whatever.localhost:3000' : '//news.whatever.com' 
end 

zu gehen:

<%= link_to('NEWS', subdomain_link,:class=>'navtext',:style=>"color:#bfbebc!important;") %> 

Um es sowohl in der Entwicklung und Produktion könnten Sie eine Hilfsmethode in application_helper.rb funktioniert schreiben Sie können auch subdomain_link konfigurieren, um eine Zeichenfolge als Argument zu akzeptieren und diese in die Domänenzeichenfolge zu interpolieren. Ein anderer Ansatz wäre, eine Variable in config/environments/development.rb und config/environments/production.rb zu konfigurieren.

+0

Dies ist für die Produktion richtig? Ich hatte auf etwas gehofft, das sowohl für lokale als auch für andere funktionieren würde. Trotzdem danke :) – Acrux

Verwandte Themen