HI,大家好,我业余自学 rail3 个月,水平浅薄,自己做了个小网站,借鉴了 Pragramic Aigle Web Development with Rails 4 里面关于将_cart.html.erb 插入到 application.html.erb 中的例子,想将一个某个 model 对应的表里面的数据显示到 application.html.erb 里面导航栏的 dropdownlist 里。相当于我希望导航栏里面的每个栏的数据能够根据 model 的数据动态刷新。 页面如图:
我当时是在 Docs 页面对应的 doc_controller 里的 Index 方法下定义了@doc_recent = Doc.order(:updated_at)[0..5] 来取最最近更新的 5 的 Doc,然后写了个_doc_recent.html.erb,作为 partial,最好在 application.html.erb 中里面 render @doc_recent。
结果,到这的时候,报错了,显示@doc_recent值为‘nil’,我来回改了很多,也遇到很多的错,我在想我就是按照书上照猫画虎,为啥我画的不对。。。所以,请大家帮我讲下,像我这样想在 layout 中的 application.html.erb 中插入其他 controller 的 view 的 partial 有什么特殊的要求或者要注意的地方没有?
另外,我这个错,我想是不是,因为导航栏被渲染出来的时候,Docs 页面还没有渲染,因此我在 doc_controller 下定义的值就不会被取出。因此会报错???正确的是不是应该这样:应该为导航栏上 Doc 的 dropdown list 创建一个 model 和 controller,让这个 Model 与之前 Docs 页面的 Model 相关联,然后从新创建的 Model 里面去取@doc_recent的值?这样就正确了??
写有些复杂,请见谅。。。非常感谢能讲讲原理,十分感谢!!