私はしばらくレールを使用してきましたが、3 レベルの深いネストされたリソースを使用するという問題をまだ克服していません。メモページにいるときに、コース名をクラスとコースにリンクしたいのですが、レールでエラーが発生し続けます。
クラス、コース、ノートの 3 つのモデルがあります。クラスには多くのコースがあり、コースはクラスに属します。コースには多くのメモがあり、メモはコースに属しています。以下に説明します。
class.rb
has_many :courses
course.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
浅いルートは、レールが「未定義のローカル変数またはメソッド「クラス」の」というエラーを表示する場合を除いて、うまく機能します。上記のコードは正しいと思いますが、なぜ正しく機能しないのかわかりません。コースを mysite.com/classes/1/course/3 のような URL にリンクする方法について何か提案はありますか?