Как установить конфигурацию action_controller.default_url_options = {: разместите = '# ''} на на основание среды

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

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/environments/development.rb, но я все еще заставляю "Недостающий хост связываться с! Обеспечьте: параметр хоста или набор default_url_options [: хост]" ошибка

development.rb

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

И я даже попробовал его этот путь:

development.rb

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

Править:

Я теперь также следовал за этим, и тем не менее та же ошибка ведет 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
задан 18 April 2011 в 07:34

1 ответ

Я знаю, что это - старый поток, но я столкнулся с этим с Ruby 2.6.3 и направляющими 5.2.3. Поведение, которое я видел, состояло в основном в том, который каждый путь, который я добавил, приведет к сбою с Error during failsafe response: undefined method 'empty?' for nil:NilClass. В производстве это хорошо работало, но в моей среде разработки, я упомяну выше ошибку.

<час>

фиксация для меня была, добавляет это к controllers/application_controller.rb:

def default_url_options
  if Rails.env.production?
    Rails.application.routes.default_url_options = { host: "www.production-domain.com", protocol: 'https' }
  elsif Rails.env.development?
    Rails.application.routes.default_url_options = { host: 'localhost:3000', protocol: 'http' }
  end
end

я затем смог работать на своей среде разработки мое локальное.

0
ответ дан 1 November 2019 в 13:52

Другие вопросы по тегам:

Похожие вопросы: