ruby-on-rails-3 - span - rails generate html in helper
default_url_options y rieles 3 (5)
Creo que el método preferido es ahora decirle al router que maneje esto:
Rails.application.routes.default_url_options[:foo]= ''bar''
Puedes poner esta línea en routes.rb
o en un inicializador. Lo que prefieras. Incluso podría poner configuraciones en su entorno si los valores cambian según su entorno.
Como ActionController :: Base # default_url_options está en desuso, me pregunto cómo configurar las opciones de URL predeterminadas en rails3. Las opciones de URL predeterminadas no son estáticas sino que dependen de la solicitud actual.
http://apidock.com/rails/ActionController/Base/default_url_options
Gracias corin
Ese enlace apidock.com es engañoso. default_url_options no está en desuso.
http://guides.rubyonrails.org/action_controller_overview.html#default_url_options
Para Rails 3 específicamente, 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 por mí 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
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 será automático a los parámetros de ruta / url.
Ejemplo de enrutamiento:
scope ":profile" do
resources :comments
end
Solo escribe:
comments_path
y si current_profile ha establecido to_param en ''lucas'':
/lucas/comments
Rails.application.routes.default_url_options[:host]= ''localhost:3000''
En el Developemnt.rb / test.rb, puede ser más conciso de la siguiente manera:
Rails.application.configure do
# ... other config ...
routes.default_url_options[:host] = ''localhost:3000''
end