Iterating on a child table (with scope)

I’m having trouble figuring out how to iterate on entries from a table
that is not the master table where I have my read_scope defined.
Example:

Say I want to list all of the birds that exist in all of the cages
within a certain pet store. I have the read_scope defined and working
elsewhere that will limit the scope of my query to just one pet store.
This is important to note, because the petstore_id is only available in
the ‘cages’ table, not in the birds table. So, in order to ensure my
read_scope lists only the birds from the one pet store, I’m pretty sure
that I have to setup my read_scope as follows, then query for all cages
and include the related birds.

Cage.with_scope(read_scope Cage.table_name) do
    @cages = Cage.paginate(
                      :include => :birds
                      )
end

Now, it is in the list view where I am having my problem. I can’t get
the right syntax of how to iterate through all of the birds in a single
list. Here are a couple of things I have tried

 @cages.each do { |b|
      b.bird.each {}
      }

or

 @cages.bird.each do |b|

…and many others. Just so it is clear, I can’t query directly for the
bird because there is no petstore_id and thus the read_scope setup
throughout the application does not work. Can anyone suggest a syntax
that will work?

Thanks,

Brad

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs