В моем приложении Ruby on Rails 3.1 у меня есть ссылка, подобная этой:
<%= link_to 'Home', root_url %>
На моем разработчике. машина отображает ссылку с "localhost: 3000". При производстве он отображает ссылку с IP-адресом типа «83.112.12.27:8080». Я хотел бы заставить рельсы отображать адрес домена вместо IP-адреса. Как установить root_url?
Вы ищете опцию по умолчанию для ActionController . Таким образом, вы можете сделать что-то вроде:
class ApplicationController < ActionController::Base
def default_url_options
if Rails.env.production?
{:host => "www.example.com"}
else
{}
end
end
end
Это также работает для ActionMailer. Кроме того, оба могут быть установлены в вашей среде .rb или application.rb
# default host for mailer
config.action_mailer.default_url_options = {
host: 'example.com', protocol: 'https://'
}
# default host for controllers
config.action_controller.default_url_options = {
:host => "www.example.com"
}