Как установить config.action_controller.default_url_options = {: host = '#' '} для каждой среды

Прямо сейчас я использую это, которое работает для хоста разработки, но мне нужно вручную изменить код {: host => ""}, когда Я перехожу к производству.

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

Я ' Я хотел бы использовать это, а затем определить default_url_options для каждой среды:

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

Я попытался добавить это в свой config / environment / development.rb, но все еще получаю сообщение «Отсутствует хост для ссылки! Пожалуйста предоставить: параметр хоста или установить default_url_options [: host] "error

development.rb

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

И я даже попробовал это так:

development.rb

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

EDIT:

Теперь я тоже следил это и все тот же справочник ошибок http://edgeguides.rubyonrails.org/action_controller_overview.html#default_url_options

контроллер приложения

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

Это сводит меня с ума, чего мне здесь не хватает ???

58
задан trying_hal9000 18 April 2011 в 03:34
поделиться