restful rails generate before ruby-on-rails ruby-on-rails-3 actioncontroller

ruby on rails - rails - Cómo configurar config.action_controller.default_url_options={: host=''#'' ''} según el entorno



resources as rails (4)

Heredar las ActionMailer su aplicación de ActionMailer .

Desea mantener las cosas lo más SECAS posible, por lo que, idealmente, no desea codificar de forma rígida su host y puerto en varios lugares para el mismo entorno, a menos que su ActionMailer realmente utilice un host y un puerto diferente que el resto de su Application .

Para establecer las default_url_options para toda su Application , simplemente agregue la siguiente línea a su archivo config/environment.rb (cambiando MyApp al nombre de su aplicación):

# Set the default host and port to be the same as Action Mailer. MyApp::Application.default_url_options = MyApp::Application.config.action_mailer.default_url_options

Esto solucionará su problema y establecerá automáticamente las config.action_mailer.default_url_options su Application al igual que su config.action_mailer.default_url_options :

$ MyApp::Application.config.action_mailer.default_url_options #=> {:host=>"lvh.me", :port=>"3000"} $ MyApp::Application.default_url_options #=> {:host=>"lvh.me", :port=>"3000"}

En este momento estoy usando esto que funciona para el host de desarrollo, pero tengo que cambiar manualmente el código {: host => ""} cuando muevo a producción.

post.rb

def share_all url = Rails.application.routes.url_helpers.post_url(self, :host => ''localhost:3000'') if user.authentications.where(:provider => ''twitter'').any? user.twitter_share(url) end end

Me gustaría usar esto y luego definir las opciones_de_url predeterminadas por entorno:

post.rb

def share_all url = Rails.application.routes.url_helpers.post_url(self) if user.authentications.where(:provider => ''twitter'').any? user.twitter_share(url) end end

He intentado agregar esto a mi config / environments / development.rb, pero sigo recibiendo el error "El host no se ha asociado al enlace! Proporcione el parámetro del host o el error set_url_options [: host]"

desarrollo.rb

config.action_controller.default_url_options = {:host => "localhost:3000"}

E incluso lo intenté de esta manera:

desarrollo.rb

config.action_controller.default_url_options = {:host => "localhost", :port => "3000"}

EDITAR:

Ahora también he seguido esto y sigo con la misma guía de error http://edgeguides.rubyonrails.org/action_controller_overview.html#default_url_options

controlador de aplicaciones

class ApplicationController < ActionController::Base protect_from_forgery include ApplicationHelper def default_url_options if Rails.env.production? { :host => "example.com"} else {:host => "example1.com"} end end end

Esto me está volviendo loco, ¿qué me falta aquí?


De acuerdo, me di cuenta de la forma correcta de escribir es

Rails.application.routes.default_url_options[:host] = ''localhost:3000''

:)


Debe reiniciar su servidor antes de que los cambios en este archivo entren en vigencia.


config.action_mailer.default_url_options = {: host => "su host"}

por ejemplo, su host localhost: 3000

puede poner esto en el host de archivos test.rb, development.rb, production.rb podría ser diferente de un entorno a otro