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 %>
<%= f.link_to_add “Add Note”, :notes, class: ‘btn btn-xs btn-primary btn-padded’ %>
I get an error no block given(yield)
Any suggestions on how to code the nested form? Is this a routes issue?
John
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
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…
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
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.
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