Прямо сейчас я использую это, которое работает для хоста разработки, но я должен вручную изменить код {: 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]» ошибка
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
Это сводит меня с ума, чего мне здесь не хватает ???