我一直在使用 rails 一段时间,但我还没有克服使用 3 级深度嵌套资源的问题。当我在笔记页面上时,我想将课程名称链接到课程和课程,但 rails 一直给我一个错误。
我有 3 个模型类、课程和笔记。一个类有很多课程,课程属于一个类。课程有很多笔记,并且笔记属于一个课程。我将在下面解释。
类.rb
has_many :courses
课程.rb
belongs_to :class
has_many :schedules
has_many :notes, :through => :schedules
note.rb
has_many :schedules
has_many :courses, :through => :schedules
日程安排.rb
belongs_to :course
belongs_to :note
路线.rb
resources :classes, :shallow => true do
resources :courses do
resources :notes
end
end
index.html.erb
<% @notes.each do |note| %>
<% note.courses.each do |course| %>
<%= note_class(course) %>
<% end %>
<% end %>
notes_helper.rb
def note_class(course)
link_to course.course_name, class_course_path(class, course)
end
浅路径效果很好,除非 rails 给我一个错误'未定义的局部变量或方法'类''。我认为我上面的代码是正确的,但我不确定为什么它不能正常工作。关于如何让课程链接到像 mysite.com/classes/1/course/3 这样的 url 有什么建议吗?