Certainly you only need to specify the associations you need to use. Colin On Wed, 24 Oct 2018 at 14:44, John Sanderbeck <bandor...@gmail.com> 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-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/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/CAL%3D0gLumvKVAz7oB-dce3AkBrqBFn_oL0KONb16ho-cSpPAJcQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.