What I forgot to mention is that if you do:

module AccountSystem
  class << self
     attr_accessor  :account_system_type
  end
end

You are actually putting the attr_accessor on the class Module, not on
the class that AccountSystem will be included in. You need to use the
included method, or use the extend method and refactor your module a
bit.

On Sep 6, 1:34 pm, Andrew Bloom <[EMAIL PROTECTED]> wrote:
> if you are checking AccountSystem.account_system_type in your
> controller what is the point of including it in ApplicationController?
> If you plan to use it as such, maybe you are better off making it a
> Singleton Class.
>
> If you actually want account_system_type to be a class accessor on
> ApplicationController you must do something like this:
>
> Module AccountSystem
>   SINGLE = 1
>   MULTIPLE = 2
>
>   self.included(klass)
>     klass.send(:cattr_accessor, :account_system_id)
>   end
> end
>
> class ApplicationController < ActionController::Base
>   include AccountSystem
>
>   # this is how you would use it
>   def random_method
>     self.class.account_system_id == AccountSystem::SINGLE
>   end
> end
>
> That should do what you seem to want, but if your goal was something
> different let me know and I can try to help.
>
> Of note, if you do use the above solution you could do:
>
> Module AccountSystem
>   ...
>
>   def single?
>     self.class.account_system_id == SINGLE
>   end
>
>   def multiple?
>     self.class.account_system_id == MULTIPLE
>   end
>
>   ...
> end
>
> class ApplicationController < ActionController::Base
>   include AccountSystem
>
>   # this is how you would use it
>   def random_method
>     if single?
>       puts "single"
>     elsif multiple?
>       puts "multiple"
>     else
>       raise "please set the AccountSystem.acoun_type_id"
>     end
>   end
> end
>
> On Sep 6, 12:08 pm, javinto <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I've added a custom library called lib\AccountSystem like so:
>
> > "module AccountSystem
> >   SINGLE = 1
> >   MULTIPLE = 2
>
> >   class << self
> >      attr_accessor  :account_system_type
> >   end
> > end"
>
> > Now I wanna configure
> > AccountSystem.account_system_type=AccountSystem::SINGLE in one app. I
> > used an initializer: config/initializers/account_initialization.rb
> > where I put this line in.
>
> > I included my AccountSystem in the ApplicationController.
>
> > So now I'd like to check within my controllers the value of
> > AccountSystem.account_system_type
>
> > But there it is empty!
> > However if I run "Ruby script\console" and type
> > AccountSystem.account_system_type I get the value of 1 as I would
> > expect.
>
> > How can I achieve the same result within my controllers?
>
> > I'm on rails 2.1.0/2.1.1
>
> > Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to