2017-09-13 3 views
0

Je rencontre des difficultés pour utiliser link_to pour accéder à mes publications/page d'index. J'ai la link_to suivante:Comment utiliser link_to pour accéder à un sous-domaine

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

Mes itinéraires:

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

Quand je suis à http://news.lvh.me:3000/posts (la page réelle du link_to fait référence) le lien fonctionne, mais quand je place sur tout autre Page (par exemple, le root_path) cela ne fonctionne pas. Je reçois l'erreur No route matches [GET] "/posts" qui, je pense, signifie que le sous-domaine n'est pas passé dans mon link_to. Des idées sur comment je peux faire ça? Merci.

Répondre

1

Essayez posts_url, au lieu de posts_path.

Cela fonctionne très bien sur mon projet même sans (subdomain:"news"). Il suffit d'utiliser posts_url directement.

1

Si rien ne fonctionne, vous pouvez simplement sauter l'aide tout à fait:

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

Pour le faire fonctionner à la fois le développement et la production, vous pouvez écrire une méthode d'aide à application_helper.rb:

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

Pour aller De plus, vous pouvez configurer subdomain_link pour accepter une chaîne comme argument et l'interpoler dans la chaîne du domaine. Une autre approche consisterait à configurer une variable config dans config/environments/development.rb et config/environments/production.rb.

+0

Ceci est pour la production non? J'espérais quelque chose qui fonctionnerait à la fois pour les locaux et les prod. Merci quand même :) – Acrux