One question though...   For a through association, I have to have a join 
table for the association.

So since I want Assessment to be my parent, should I do a join like this?

Create a data_entry table and a data_records join table and then have the 
association be

assessment 

  has_many :data_entries, through: :data_records

and data_entries

  has_many :assessments, through: :data_records

However while this may be structured better, I would still have the issue 
with the reason and consequence associations...

John

On Wednesday, October 24, 2018 at 9:48:17 AM UTC-4, Colin Law wrote:
>
> Certainly you only need to specify the associations you need to use. 
>
> Colin 
> On Wed, 24 Oct 2018 at 14:44, John Sanderbeck <band...@gmail.com 
> <javascript:>> wrote: 
> > 
> > Hmmm...   That may work... 
> > 
> > I would always be accessing assessment.data_entries for any lists or 
> views. Reasons and Consequences are basically select criteria for each data 
> entry. 
> > I would never reference reason.data_entries or consequence.data_entries 
> > 
> > a has_many :data_entries, :through: :assessment may work though...  Let 
> me give that a shot... 
> > 
> > Now to figure out how to structure it...  :-) 
> > 
> > On Wednesday, October 24, 2018 at 7:12:45 AM UTC-4, John Sanderbeck 
> wrote: 
> >> 
> >> I'm working on a project that has the following setup 
> >> 
> >> I have a table called Assessment 
> >> 
> >> for each assessment there can be different reasons and consequences 
> defined for that assessment 
> >> 
> >> then for each assessment the teacher takes multiple data entries over a 
> period of time 
> >> 
> >> each data entry can choose multiple reasons and consequences from the 
> ones defined in the assessment 
> >> 
> >> So you have assessment 
> >> has_many :reasons 
> >> accepts_nested_attributes_for :reasons 
> >> has_many :consequences 
> >> accepts_nested_attributes_for :consequences 
> >> has_many :data_entries 
> >> accepts_nested_attributes_for :data_entries 
> >> 
> >> Then reasons 
> >> belongs_to :assessment 
> >> has_and_belongs_to_many :data_entries 
> >> 
> >> Then consequences 
> >> belongs_to :assessment 
> >> has_and_belongs_to_many :data_entries 
> >> 
> >> Finally data_entries 
> >> belong to assessment 
> >> has_and_belongs_to_many :reasons 
> >> has_and_belongs_to_many :consequences 
> >> 
> >> There is also a join table for reasons to data_entries, and 
> consequences to data_entries 
> >> 
> >> The nested table works fine for the reasons, consequences, and the base 
> data_entries 
> >> 
> >> however what I cannot get to work is the reasons and consequences 
> chosen in the data_entries 
> >> 
> >> what appears to be happening in params is that assessment comes back 
> with data_entries_attributes under it 
> >> however there is also a data_entry param coming back as well, so it is 
> not part of assessment, so the nest is wrong somehow... 
> >> 
> >> I have this working in other places however this nest is one level 
> deeper than the others... 
> >> 
> >> The way I have the nested form section setup is this... 
> >> 
> >>   <td> 
> >>     <div class="multi-column"> 
> >>       <ul> 
> >>         <% @assessment.reasons.each do |reason| -%> 
> >>             <ul> 
> >>               <%= check_box_tag('data_entry[reason_ids][]', reason.id, 
> @assessment.reason_ids.include?(reason.id), :multiple => true) %> 
> >>               <span rel="tooltip" title="<%= reason.assessment_id 
> %>"><%= reason.name %></span> 
> >>             </ul> 
> >>         <% end %> 
> >>       </ul> 
> >>     </div> 
> >>   </td> 
> >>   <td> 
> >>     <div class="multi-column"> 
> >>       <ul> 
> >>         <% @assessment.consequences.each do |consequence| -%> 
> >>             <ul> 
> >>               <%= check_box_tag('data_entry[consequence_ids][]', 
> consequence.id, @assessment.consequence_ids.include?(consequence.id), 
> :multiple => true) %> 
> >>               <span rel="tooltip" title="<%= consequence.assessment_id 
> %>"><%= consequence.name %></span> 
> >>             </ul> 
> >>         <% end %> 
> >>       </ul> 
> >>     </div> 
> >>   </td> 
> >> 
> >> 
> >> John 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to rubyonrails-ta...@googlegroups.com <javascript:>. 
> > To post to this group, send email to rubyonra...@googlegroups.com 
> <javascript:>. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rubyonrails-talk/749f9533-d198-4f8a-a2a5-98c6c5368452%40googlegroups.com.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/4c63b26a-3fa0-4c1e-b6a6-307166160a93%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to