Please ask this question on the rubyonrails-talk mailing list, as this list
is for issues pertaining to the core framework.

And no, even that Passenger issue is *not* related to this mailing list.

On 22 เม.ย. 2554, at 3:35, clem_c_rock <[email protected]> wrote:


Hello,
   I'm trying to build an app (mysuperapp.com) that allows users to create
an account in which a default subdomain (IE: joeshmoe.mysuperapp.com) will
be
created as their homepage.    In their profile settings, I also want to give
them the ability to add their own domain name so their homepage now can be
joeshmoe.com.    I know this is possible in rails w/ plugins like
subdomainfu and w/out plugins in rails3.   I've searched countless websites
on the subject and I'm attempting to build an app based on this example:

http://glacialis.postmodo.com/

so, as in this example, I've created lib/personalized_domain.rb

[code]
# lib/personalized_domain.rb
class PersonalizedDomain
 def self.matches?(request)
   case request.host
   when 'www.#{APP_CONFIG[:domain]}', '#{APP_CONFIG[:domain]}', nil
     false
   else
     true
   end
 end
end
[/code]


and in my routes I have this:

[code]
# config/routes
constraints(PersonalizedDomain) do
 namespace :personalized, :path => '/' do
   root :to => "projects#show"
   resource :project
 end
end


root :to => "home#index"
[/code]


in my model I have:

[code]
# app/models/project.rb
before_validation :cache_domain

validates_uniqueness_of :subdomain,
                       :cached_domain
validates_uniqueness_of :cname_alias,
                       :allow_blank => true
validates_presence_of   :subdomain,
                       :cached_domain
validates_exclusion_of  :subdomain,
                       :in => %w(admin blog),
                       :message => "is taken"

def cache_domain
 self.cached_domain = if self.cname_alias.blank?
   "#{self.subdomain}.#{APP_CONFIG[:domain]}"
 else
   "#{self.cname_alias}"
 end
end
[/code]


as per the example, my base controller:
[code]
# app/controllers/personalized/base_controller.rb
class Personalized::BaseController < ApplicationController
 before_filter :get_project

protected
 def get_project
   @project = Project.first(:conditions => {
       :cached_domain => request.host
   })
 end
end
[/code]


One thing I noticed, in PersonalizedDomain,  was that if I put a debug
statement in the self.matches? method as such:

[code]
class PersonalizedDomain
 def self.matches?(request)

Rails.logger.info
("****(PersonalizedDomain::self.matches?)-->>APP_CONFIG[:domain]:
#{APP_CONFIG[:domain]}")
   case request.host
   when 'www.#{APP_CONFIG[:domain]}', '#{APP_CONFIG[:domain]}', nil
     false
   else
     true
   end
 end
end
[/code]

the debug statement never get's executed.

Thanks for any help

-- 
View this message in context:
http://old.nabble.com/Rails-3-Foreign-Domain-routing---cannot-get-this-to-work%21-tp31452495p31452495.html
Sent from the RubyOnRails Core mailing list archive at Nabble.com.

-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to