default_url_options and rails 3

Como ActionController :: Base # default_url_options está en desuso, me pregunto cómo establecer las opciones predeterminadas de url en rails3. Las opciones predeterminadas de url no son estáticas, sino que dependen de la solicitud actual.

http://apidock.com/rails/ActionController/Base/default_url_options

Gracias, Corin

Para configurar las opciones de url para la solicitud actual, use algo como esto en su controlador:

 class ApplicationController < ActionController::Base def url_options { :profile => current_profile }.merge(super) end end 

Ahora,: profile => current_profile se automotrizará a los parámetros path / url.

Enrutamiento de ejemplo:

 scope ":profile" do resources :comments end 

Solo escribe:

 comments_path 

y si current_profile ha configurado to_param a ‘lucas’:

 /lucas/comments 

Creo que el método preferido ahora es decirle al enrutador que maneje esto:

 Rails.application.routes.default_url_options[:foo]= 'bar' 

Puede poner esta línea en routes.rb o en un inicializador. Lo que prefieras. Incluso podría ponerlo en las configuraciones de su entorno si los valores cambian en función de su entorno.

Ese enlace de apidock.com es engañoso. default_url_options no está en desuso.

http://guides.rubyonrails.org/action_controller_overview.html#default_url_options

Específicamente para Rails 3, la forma canónica de hacerlo es agregar un método default_url_options a su ApplicationController .

 class ApplicationController < ActionController::Base def default_url_options { :host => "corin.example.com", :port => "80" # Optional. Set nil to force Rails to omit # the port if for some reason it's being # included when you don't want it. } end end 

Solo tuve que resolver esto yo mismo, así que sé que funciona.

Esto está adaptado de la Guía de Rails 3:
http://guides.rubyonrails.org/v3.2.21/action_controller_overview.html#default_url_options