我是编程和rails的新手,所以请原谅任何重大的疏忽。我最近在heroku中部署了一个rails应用程序,并将所有环境切换为我的数据库的postgres。使用Postgres完成了heroku工作 - 运行rake db:drop db:migrate db:create db:seed all用rake任务填充我的数据库,测试应用程序搜索表单,过滤器,数据查询等等一切顺利。
但是我现在在启动我的本地服务器并转到我的两个视图之后,在浏览器中收到“ActiveSupport :: SafeBuffer与nil的比较失败”的错误 - 浏览器指向我在具有
的视图中的行<% @price_array.sort! {|x,y| x <=> y} %>
这是我在服务器日志中看到的:
Rendered skis/index.html.erb within layouts/application (212.9ms)
Completed 500 Internal Server Error in 280ms
ActionView::Template::Error (comparison of ActiveSupport::SafeBuffer with nil failed):
51: <% ski.inventories.each do |inventory| %>
52: <% a.push(number_to_currency(inventory.price)) %>
53: <% end %>
54: <% @lowest_price = a.sort { |x,y| x <=> y} %>
55: from <%= @lowest_price.first %>
56: </br>
57: </li>
app/views/skis/index.html.erb:54:in `sort'
app/views/skis/index.html.erb:54:in `block in_app_views_skis_index_html_erb___2303745325449705978_70146899313600'
app/views/skis/index.html.erb:32:in `each'
app/views/skis/index.html.erb:32:in `_app_views_skis_index_html_erb___2303745325449705978_70146899313600'
app/controllers/skis_controller.rb:32:in `index'
这可能与我遇到的问题有关 - 我似乎无法放弃我的postgres数据库。
这就是我在终端上看到的postgres:
postgres=# \dbdrop postgres
List of tablespaces
Name | Owner | Location
------+-------+----------
(0 rows)
我昨晚做的另一件事是按照此处的说明更新我的.bash_profile(http://stackoverflow.com/questions/6770649/repairing-postgresql-after-upgrading-to-osx-10-7-lion )。这就是我的.bash_profile现在的样子:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
PATH=/usr/local/bin:$PATH
在postgres中是否有一些我错过的导致此错误的配置?任何帮助或资源将不胜感激。感谢。
答案 0 :(得分:0)
您的nil
数组中包含a
个值。试试:
a.compact.sort
compact
删除数组中所有nil的出现。