Ruby on rails Rails列表问题
我生成了一个脚手架,并创建了一个临时应用程序。我想在边栏上列出脚手架项目,在应用程序的任何地方(在application.html.erb内部)。 application.html.erb中我的左栏如下所示: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
> <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>