permisos para modificar está esta encontrar donde descargar configurar como carpeta archivo ruby-on-rails url configuration

ruby-on-rails - para - host windows 7



¿Cómo configuro el host predeterminado para los ayudantes de url en los rieles? (8)

Me gustaría hacer algo como esto

config.default_host = ''www.subdomain.example.com''

en algunos de mis archivos de configuración, para que object_url helpers ( ActionView::Helpers::UrlHelper ) produzca enlaces que comiencen por http://www.subdomain.example.com

Intenté buscar en los documentos, pero no encontré nada, excepto los documentos de ActionMailer y http://api.rubyonrails.org/classes/Rails/Configuration.html que no es útil para mí, porque no sé en qué momento Mira. ¿Hay algún lugar que describa la estructura completa de Rails :: Initializer.config?


Defina el host predeterminado en la configuración de su entorno:

# config/environments/staging.rb MyApp::Application.configure do # ... Rails.application.routes.default_url_options[:host] = ''preview.mydomain.com'' # ... end

Luego puedes crear una URL en cualquier lugar de tu aplicación:

Rails.application.routes.url_helpers.widgets_url()

O incluye los ayudantes de URL en tu clase:

class MyLib include Rails.application.routes.url_helpers def make_a_url widgets_url end end

Si no define el host predeterminado, deberá pasarlo como una opción:

widgets_url host: (Rails.env.staging? ? ''preview.mydomain.com'' : ''www.mydomain.com'')

También es útil especificar cosas como el protocolo:

widgets_url protocol: ''https''


Hasta donde yo sé, los ayudantes de *_url usan el nombre de host configurado del servidor. Entonces, por ejemplo, si mi instalación de Apache acepta solicitudes para esta aplicación de Rails en http://www.myapp.com/ entonces Rails usará esa dirección. Es por eso que los métodos *_url en un entorno de desarrollo apuntan a http://localhost:3000 de manera predeterminada.

El host de image_tag sugerido en la respuesta anterior solo afectará a los image_tag , stylesheet_link_tag y javascript_link_tag .



La forma más simple de obtener su url de dominio dinámico usando una variable global en rieles.

class ApplicationController < ActionController::Base def base_url $base_url = request.base_url end end

Después de simplemente llamar a este método en su archivo de encabezado <% base_url %> , ahora puede acceder a la URL de su dominio en cualquier lugar de su aplicación.


La solución de NSD es cómo lo hago, pero tuve que agregar un bloque para que funcione con https:

config.action_controller.asset_host = Proc.new { |source, request| (request ? request.protocol : ''http://'') + "www.subdomain.example.com" }


Otra forma es configurarlo así

# config/production.rb config.action_controller.default_url_options = { host: ''myproduction.com'' }


Puede establecer fácilmente :host o / y :only_path parámetro :only_path para cada url_helper. yours_url(params, :host => "http://example.com", :only_path => Rails.env.test?) esta manera no está configurando global_url_options en sus entornos, a menos que así lo desee.