I’m trying to find the best way to handle this task, and I’m not
having much luck. I think I lack knowledge of the terminology to
research this. I have these models:
Account, which has many Pages
Page, has many Items
Item, has many Tags (through a join model: ItemTag)
Tag, has many Items (through same join model)
What’s the simplest way to retrieve all Tags associated with an
Account? Right now, the best I can do is iterate through each Item and
add the associated tags to an array. This seems overly cumbersome, and
I’m hoping there’s a better way. Any advice?
Account? Right now, the best I can do is iterate through each Item and
add the associated tags to an array. This seems overly cumbersome, and
I’m hoping there’s a better way. Any advice?
I think you’re looking for has_and_belongs_to_many association. Try
something like:
What I have now is similar, but using has_many :through instead of
habtm. What I’m looking for is something functionally equivalent to:
account = Account.find(:first)
account.tags # returns all tags across all items, on all pages
Note that the tags are actually associated with items, which are
associated with pages, which are associated with accounts. A few
degrees of separation there. Will switching to habtm allow this?
What I have now is similar, but using has_many :through instead of
habtm. What I’m looking for is something functionally equivalent to:
account = Account.find(:first)
account.tags # returns all tags across all items, on all pages
Note that the tags are actually associated with items, which are
associated with pages, which are associated with accounts. A few
degrees of separation there. Will switching to habtm allow this?
Not that I’m aware of. Sorry but I think I misread the critial part of
your post. As far as I know (and some ruby genius will come up with a
far better idea) the only way to do what you want is to iterate through
the pages and the items and then collect tags.
It might be possible to do it with an association but I don’t know how,
although I would be interested to know if it is possible.
Thanks,
Jeffr
Matt
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.