0

我在我们的应用程序的 index.rhtml 中遇到了这个问题。基本上,我在页面中有一个动态 div,w/c 显示当前登录用户项目的所有信息。

这是发生错误的片段:

<% projects.each do |p| %>
  <tr>
    <td><div><%=h p.location %></div></td> <- ERROR
  ...

请注意,p.location它只返回一个字符串。

奇怪的是,这个错误不会出现在我的应用程序的本地副本中,而只会出现在生产服务器中。我的本地副本使用与生产服务器相同的环境(gems、Ruby 版本、Rails 版本)。

这是我的宝石清单

*** LOCAL GEMS ***
actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activeresource (2.3.5)
activesupport (2.3.5)
bcrypt-ruby (2.1.2)
bson (0.20.1)
bundler (1.0.22)
composite_primary_keys (2.3.5.1)
factory_girl (2.5.1)
fastthread (1.0.7)
ferret (0.11.6)
jnunemaker-validatable (1.8.3)
mocha (0.9.8)
mongo (0.19.3)
mongo_mapper (0.7.3)
mysql (2.8.1)
rack (1.0.1)
rails (2.3.5)
rake (0.9.2.2)
redgreen (1.2.2)
rubygems-bundler (0.2.8)
rvm (1.9.2)
thoughtbot-shoulda (2.11.1)
4

1 回答 1

0

找到了一种使用 iconv 修复它的 hacky 方法。基本上我强迫它使用 utf-8 编码。

在模型中:

class Project < ActiveRecord::Base  
...

  def location
    ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', self[:location] + ' ')[0..-2]
  end

...
end

但这仍然没有回答我的问题,为什么我不能在本地复制错误,它只发生在生产服务器中。

于 2012-07-13T09:38:55.570 回答