I can't get this to work.   Let me try to be more specific.   I have models 
Recipe, Tag, User, and TagAssignment.    

Recipe belongs to :creator, :class_name = "User"
Tag belongs to :creator, :class_name = "User"
Recipe has many Tags through TagAssignment (and vice-versa)

The page is the edit page of Recipe.   When I add "tags" to the field-list for 
the edit page, what I see depends on what is in the view_permitted? of Tag.  If 
this returns true, I see the neat popupmenu with a list of tags and buttons to 
delete the tags.  But it shows everyones tags. 

   If I put the suggested code in the view_permitted, the popup doesn't show up 
at all.

I've been looking at the definition of the <select-many> tag.   Since it has 
the line
options ||= this_field_reflection.klass.all(:conditions 
=>this.conditions).select {|x| can_view?(x)}
I figured can_view?(x) means by default it checks view_permitted for each of 
its collection, but that is not what seems to happen.     Could I put a 
selector in the show controller for recipe?

Or could I modify <select-many> to change which items it will show?








On Nov 17, 2010, at 12:42 PM, Peter Ehrlich wrote:

> So I'm not sure which model you're pulling these permissions method
> from, but at any rate it sounds like you need field-specific
> permissions, if only tags are not showing.  Perhaps something inspired
> by this?
> 
> def view_permitted?(field)
>        return true if :tag == field  and acting_user == tag.creator
> end

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