Ruby on rails Rails列表问题

Ruby on rails Rails列表问题,ruby-on-rails,scaffold,nomethoderror,Ruby On Rails,Scaffold,Nomethoderror,我生成了一个脚手架,并创建了一个临时应用程序。我想在边栏上列出脚手架项目,在应用程序的任何地方(在application.html.erb内部)。 application.html.erb中我的左栏如下所示: > <div id="leftcolumn"> > <% @items.each do |link| %> > <%= link_to link.title, link %> > <% end

我生成了一个脚手架,并创建了一个临时应用程序。我想在边栏上列出脚手架项目,在应用程序的任何地方(在application.html.erb内部)。 application.html.erb中我的左栏如下所示:

>  <div id="leftcolumn">
>     <% @items.each do |link| %>
>       <%= link_to link.title, link %>
>     <% end %>
>  </div>
下面的代码是左列的代码。
我该如何解决这个问题呢?

Rails正在抱怨,因为您试图将nil视为一个数组。如果不发布application.html.erb的行号,我不得不猜测,但是我猜
@items
是零

如果要在布局中包含此项,则需要确保在每个请求中都设置了
@items
数组。它是?一种简单的方法是在应用程序_controller.rb中的_filter前面加一个

class ApplicationController < ActionController::Base
    ...
    before_filter setup_items
    ...
    def setup_items
        @items = Item.all
    end
    ...
end
class ApplicationController

这假设所有使用此布局的控制器都扩展了应用程序控制器。

确保您的控制器具有以下功能:

@items = Item.all
那么在您看来,您希望这样:

<div id="leftcolumn">
   <% @items.each do |link| %>
     <%= link_to link.title, link if link.title%>
   <% end %>
</div>


它可能会失败,因为其中一个
链接没有标题。

不是这样。所有链接都有一个标题,这不是问题所在。谢谢anyway@Ariel,从我对这个问题的理解来看,@drewbob的回答似乎非常准确。也许你应该更好地解释这个问题。
<div id="leftcolumn">
   <% @items.each do |link| %>
     <%= link_to link.title, link if link.title%>
   <% end %>
</div>