Ruby on Rails Friday, August 17, 2018

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 <band...@gmail.com> 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 rubyonrails-ta...@googlegroups.com.
> To post to this group, send email to rubyonra...@googlegroups.com.
> 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 rubyonrails-talk+unsubscribe@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/98e371ed-cb7d-4669-9ced-c60b5e6b6ceb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment