【发布时间】:2014-08-15 06:58:15
【问题描述】:
我刚刚将本地 Rails 4 应用程序推送到 Heroku,但出现了一个奇怪的错误。通常情况下,它在本地运行良好,没有任何问题。我认为 Heroku DB / 环境与本地基本相同(据我所知!)
Heroku 日志中的错误是:ActionView::Template::Error (undefined method 'empty?' for nil:NilClass)
它试图判断关联是否为empty——如果是empty,则显示无结果部分——如果不是empty,则循环遍历结果并为每个结果显示部分结果。
控制器:
@polls = Poll.where('team_id = ? AND expires_at >= ?', params['id'], DateTime.now())
查看:
<% if @polls.empty? %>
<%= render partial: "noresults" %>
<% else %>
<% @polls.each do |p| %>
<%= render partial: "poll", locals: {poll: p} %>
<% end %>
<% end %>
我打开了一个 Heroku 控制台并运行了 @polls 查询,它返回了正确的关联,我可以使用 empty? 对其进行测试,并且它按预期工作。
有没有想过是什么原因造成的?
编辑:
数据库.yml
production:
adapter: postgresql
encoding: unicode
pool: 5
【问题讨论】:
-
您的应用程序是否使用了 DATABASE_URL 的 heroku 配置?
-
@DavidS——“生产”配置非常简单。我会在上面发帖。
-
你可以使用
.blank?... -
@Niall——这似乎奏效了——但我很想知道为什么?这似乎是核心 rails 的东西,而不是奇怪的 gem 依赖或其他东西。
-
只是在这里勾选复选框,但你确定@polls.empty 吗?错误指的是什么?
标签: ruby-on-rails postgresql heroku ruby-on-rails-4