在 application.html.erb 中调用 post.title 会为 nil:NilClass 生成错误未定义方法“each”
calling post.title in application.html.erb generates error undefined method `each' for nil:NilClass
我在 application.html.erb 中有侧边栏。
<div class="well sidebar-nav">
<h3>Rewards</h3>
<% @rewards.each do |reward| %>
<ul class="nav nav-list">
<li class="nav-header"><%= reward.title %></li>
<li><%= reward.price %></li>
<li><%= reward.image_url %></li>
<li><%= reward.details %></li>
<li><%= reward.estimated_delivery %></li>
<li><%= reward.claimed %></li>
</ul>
<% end %>
</div><!--/.well -->
我通过以下方式生成奖励:rails g scafford 奖励 ....以下属性。
我的奖励视图运行良好。但是当我转到其他页面时,出现此错误
undefined method `each' for nil:NilClass
我知道这是因为我的 application.html.erb
正在 applicationcontroller 中寻找 @rewards
但它不在那里。但我不知道如何解决这个问题。
如果你想在整个应用程序范围内使用它,你应该在 application_controller
的 before_filter
中设置它:
class ApplicationController < ActionController::Base
before_filter :set_rewards
# ...
private
def set_rewards
@rewards = #set your rewards here
end
end
我在 application.html.erb 中有侧边栏。
<div class="well sidebar-nav">
<h3>Rewards</h3>
<% @rewards.each do |reward| %>
<ul class="nav nav-list">
<li class="nav-header"><%= reward.title %></li>
<li><%= reward.price %></li>
<li><%= reward.image_url %></li>
<li><%= reward.details %></li>
<li><%= reward.estimated_delivery %></li>
<li><%= reward.claimed %></li>
</ul>
<% end %>
</div><!--/.well -->
我通过以下方式生成奖励:rails g scafford 奖励 ....以下属性。
我的奖励视图运行良好。但是当我转到其他页面时,出现此错误
undefined method `each' for nil:NilClass
我知道这是因为我的 application.html.erb
正在 applicationcontroller 中寻找 @rewards
但它不在那里。但我不知道如何解决这个问题。
如果你想在整个应用程序范围内使用它,你应该在 application_controller
的 before_filter
中设置它:
class ApplicationController < ActionController::Base
before_filter :set_rewards
# ...
private
def set_rewards
@rewards = #set your rewards here
end
end