unable to set default_url_options on per environment basis

Im trying to set the default_url_options on a per environment basis
but nothing is working. I keep getting "Missing host to link to!
Please provide :host parameter or set default_url_options[:host]"


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

I've tried adding this to my config/environments/development.rb :


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

which didn't work so I tried it this way:


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

And that didnt work so I tried just defining the method in the
application controller but it didnt work either.

class ApplicationController < ActionController::Base
  include ApplicationHelper
  def default_url_options
      { :host => "example.com"}

What am I missing here? This is driving me nuts, thanks.

I think you're not setting default_url_options in the correct place -
you're using the named routes module in isolation (whereas normally
that code would be called from within a controller or helper) so the
stuff you're doing to ApplicationController doesn't come into place.

Rails.application.routes.default_url_options[:host]= 'example.com'

seems to do the trick


Thanks that worked perfectly