To keep it DRY, I'd define a view_permitted_helper in your base class 
that could be called from view_permitted? in your subclasses with the 
list of allowable attributes.  If I understand your question correctly, 
that should achieve your goals.

cheers,
Bryan

Hamilton wrote:
> Got STI working nicely.
> However I only want certain fields to show up in forms, views, etc...
> If I used never_show, I would need to update virtually all subclasses
> never_show to exclude fields form view / edit, etc...
> Is there a show_only or something.
> So I have
> class Item < ActiveRecord::Base
> 
> hobo_model # Don't put anything above this
> 
>   fields do
>     #General for all subclasses
>     name :string #name of the item. Might be used in LineItem
>     code:string #code of the item. Used in LineItem
>     timestamps
>     inactive:boolean #if this item is inactive or not. If inactive
> then no listed in Store, etc... Also not
>     description:text #general description of the item. Used in
> LineItem
>     discount_rate:decimal #the rate of discount applied
>     is_percentage:boolean
>     sti_type :string
>   end
> 
>   set_inheritance_column :sti_type
> 
> 
> In ItemDescription
> 
> class ItemDescription < Item
> 
> 
>   never_show  :code, discount_rate, is_percentage
> 
>     def view_permitted?(field)
>      true
> 
>   end
> end
> 
> There will be more subclasses of Item and a lot more fields in Item.
> I just want to say in ItemDescription only use / show these certain
> fields. I. E the opposite of never_show. That way when new fields are
> added to Item, I only need to update certain subclasess.
> 
> Help if you can :)
> > 
> 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Hobo 
Users" 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/hobousers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to