我刚刚将嵌套资源添加到我的 Ruby on Rails 应用程序中。
它主要是猜测,复制和粘贴。
现在一切正常。
但我担心的是,在使用 url 助手时,我必须使用两种不同的变量形式——一种以 @ 开头,另一种没有 @。
在我的部分中,我使用了:
=> link_to t('ui.edit'), edit_course_lesson_path(@course, lesson)
如果我在课程之前添加“@”,则会出现以下错误:
Routing Error
No route matches {:action=>"edit", :controller=>"lessons", :course_id=>#<Course id: 2,
title: "title x", user_id: 1, subject_id: 1, student_level_id: 1, objectives: "obj xx",
created_at: "2013-08-09 15:51:38", updated_at: "2013-08-09 15:51:38">, :id=>nil}
Try running rake routes for more information on available routes.
在我的常规观点中:
=> link_to t('ui.edit'), edit_course_lesson_path(@course, @lesson)
最后一个例子,如果我写的课程没有'@',那么我得到:
undefined local variable or method `course' for #<#<Class:0x007f5e10082800>:0x007f5e10a64760>
只是想知道在视图中添加或省略“@”的区别。可能,这里的关键因素是部分视图与常规视图。
非常感谢!
PS:另外,我发现这篇文章对嵌套资源主题很有用:
http://blog.8thcolor.com/2011/08/nested-resources-with-independent-views-in-ruby-on-rails/