2011-02-25 20 views
26

È possibile generare URL assoluti in rail utilizzando il collegamento a? [Nota: Questo è in un bollettino]URL assoluti con link_to ... Ruby on Rails

ho cercato di fare:

<%= link_to root_url, root_url%> 

Ma ottengo un errore di runtime:

* ospite mancante per collegare a! Si prega di fornire: parametro host o default_url_options set [: host] *

ho bisogno di questo per essere dinamica perché l'applicazione verrà eseguito su un dominio con caratteri jolly (* .dominio.com)

+0

Perché avete bisogno l'URL per essere assoluto in questo caso? Un URL relativo sarà relativo all'host corrente, che suona come quello che vuoi – Gareth

+0

L'unica ragione per cui posso pensare è che è perché questo link verrà incorporato in una e-mail. E 'quello che sta succedendo qui, Chris? –

+0

Sì, sono in una e-mail –

risposta

0

In inserto routes.rb:

root :to => 'controller#action' 

Oppure sostituire la mappa corrente.root con quella corretta.

vedere la documentazione su questo: routes.rb usage

+0

Abbastanza sicuro che "map" in routes.rb sia solo per Rails 2. – Tronathan

+0

@Tronathan Hai ragione, aggiorno questa vecchia risposta :) – Awea

38

Se si utilizza il suffisso _url, l'URL generato è assoluta. Utilizzare _path per ottenere un URL relativo.

<%= link_to "Home", root_url %> 

<%= link_to "Home", root_path %> 
+3

Funziona bene da una vista normale, ma da un mailer non ho molta fortuna ... –

+5

In Mailer devi passare o configurare un host predefinito. –

+2

Cosa succede se l'host è dinamico però. * .dominio.com? –

6

A seconda del caso d'uso, stringa di interpolazione potrebbe essere una buona soluzione:

link_to(body, "http://#{site_url}")