Is this the proper relationship for this to work? It looks right to me...
What I want to do is add notes to a student through the Attendance Edit form
class Attendance < ActiveRecord::Base
belongs_to :student
accepts_nested_attributes_for :student
has_many :notes, through: :student
accepts_nested_attributes_for :notes
end
class Student < ActiveRecord::Base
# Also used through Attendance Edit
has_many :attendances, dependent: :destroy
has_many :notes, dependent: :destroy
accepts_nested_attributes_for :notes, allow_destroy: true
end
class Note < ActiveRecord::Base
belongs_to :student
end
On Thursday, August 16, 2018 at 4:59:59 PM UTC-4, John Sanderbeck wrote:
>
> I figured it out... Didn't have a accepts_nested_attributes_for :notes
> in my attendance model... Duh !!!
>
> However when I try to write I get an error
>
> Cannot modify association 'Attendance#notes' because the source reflection
> class 'Note' is associated to 'Student' via :has_many.
>
>
> On Wednesday, August 15, 2018 at 6:42:38 AM UTC-4, John Sanderbeck wrote:
>>
>> The way the nests are working now is it should render the file
>> _note_fields.html.erb but it acts like it is not finding that file which
>> tells me the fields_for is looking for a different name due to the way it
>> is nested
>>
>> On Wednesday, August 15, 2018 at 6:26:31 AM UTC-4, John Sanderbeck wrote:
>>>
>>> That's the way all my other nests are defined and they work fine... I
>>> think the problem is I am adding a nest from a different model than I am
>>> actually working on...
>>>
>>> On Tuesday, August 14, 2018 at 8:03:57 PM UTC-4, Walter Lee Davis wrote:
>>>>
>>>>
>>>> > On Aug 14, 2018, at 5:49 PM, John Sanderbeck <[email protected]>
>>>> wrote:
>>>> >
>>>> > Not sure if the subject is correct for what I am trying to do...
>>>> >
>>>> > I am working on a School application and I added an Attendance
>>>> section
>>>> >
>>>> > There is an attendance record that is associated to a student record
>>>> >
>>>> > The student record has an associated model called notes...
>>>> >
>>>> > What I would like to be able to do is add notes to the student
>>>> through the attendance record...
>>>> >
>>>> > My Attendance record belongs_to :student
>>>> > My Student record has_many :attendances
>>>> > My Student record has_many :notes
>>>> >
>>>> > I can access Attendance.student.notes just fine, but when I try to
>>>> add notes through a nested form it doesn't like that...
>>>> >
>>>> > Also just tried adding has_many :notes, through: :student and now I
>>>> can access Attendance.notes, however when I add
>>>> >
>>>> > <%= f.fields_for :notes %>
>>>>
>>>> You need to add a 'do' at the end of the previous line. Without that,
>>>> and...
>>>>
>>>> > <%= f.link_to_add "Add Note", :notes, class: 'btn btn-xs
>>>> btn-primary btn-padded' %>
>>>>
>>>> an end here to close the block, you're not giving a black to the
>>>> fields_for macro. That's what the error means.
>>>>
>>>> Walter
>>>>
>>>> >
>>>> > I get an error no block given(yield)
>>>> >
>>>> > Any suggestions on how to code the nested form? Is this a routes
>>>> issue?
>>>> >
>>>> > 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 [email protected].
>>>> > To post to this group, send email to [email protected].
>>>> > To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/rubyonrails-talk/038295ce-0ea0-433a-8df0-7e29e681d934%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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/98e371ed-cb7d-4669-9ced-c60b5e6b6ceb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.