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]”

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

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

development.rb

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

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

development.rb

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
protect_from_forgery
include ApplicationHelper
def default_url_options
{ :host => “example.com”}
end
end

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

On Apr 17, 10:16pm, charles d [email protected] wrote:

end

include ApplicationHelper
def default_url_options
{ :host => “example.com”}
end
end

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

Fred

Thanks that worked perfectly

On Apr 18, 6:05am, Frederick C. [email protected]

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs