我想将rails 3升级到rails 5.我使用mongodb作为数据库。我正在使用rails admin 1.2.0。我使用的是jruby-9.1.7.0。我是rails api唯一的应用程序。我的申请宝石如下。
gem 'rails', '~> 5.1.4'
gem 'awesome_print', '~> 1.8.0'
gem 'devise', github: 'plataformatec/devise', :branch => 'master', :ref => "463351922fdafb96c50ba2496c7d0adaa3223283"
gem "doorkeeper-mongodb", github: "doorkeeper-gem/doorkeeper-mongodb"
gem 'cancan', github: 'DevAVIJIT7/cancan', :branch => 'master', :ref => "aa3729bd79d92a993c5186f983eccd2fd496c2d3"
gem 'puma','~> 3.11.0'
gem 'mongoid', '6.2.1'
gem 'mongoid-tree', '~> 2.1.0'
gem 'rails_admin', '~> 1.2'
在我的路线中,rails admin mount path和initializer file看起来像
mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'
RailsAdmin.config do |config|
RAILS_ADMIN_BASE_PATH = 'godview'
config.main_app_name = Proc.new do |controller|
[ "Admin", "#{controller.params[:action].try(:titleize)}" ]
end
config.authenticate_with do
authenticate_or_request_with_http_basic('Login required') do |username, password|
user = User.where(username: username).first
if user && user.valid_password?(password) && user.role_names.include?("Super Admin")
user
else
nil
end
end
end
end
当我在浏览器上运行http://localhost:3000/admin时,我收到错误消息。
在控制台中我正在
Started GET "/godview" for 0:0:0:0:0:0:0:1 at 2018-01-15 14:54:12
+0530
Processing by RailsAdmin::MainController#dashboard as HTML
Completed 401 Unauthorized in 263ms
IOError (Couldn't load the Unicode tables for UTF8Handler (undefined method
`call' for nil:NilClass
Did you mean? caller), ActiveSupport::Multibyte is unusable):
我浏览了Rails: Couldn't load the Unicode tables for UTF8Handler链接但没有得到任何回复。
*注意:我在我的应用中使用/ admin作为/ godview。 感谢
答案 0 :(得分:0)
我们在CentOS上使用Docker作为我们的rails项目,我们最近遇到了这个错误,我们通过在docker文件中明确指定C.UTF8
编码来修复它,如下所示:
ENV LANG C.UTF-8
<强>编码
默认情况下,Ruby继承运行它的环境的语言环境。对于大多数在桌面系统上运行Ruby的用户来说,这意味着它可能会使用* .UTF-8(en_US.UTF-8等)的某些变体。但是,在Docker中,默认语言环境是C,可能会产生意外结果。如果您的应用程序需要与UTF-8交互,建议您通过-e LANG = C.UTF-8或ENV LANG C.UTF-8
<强>参考文献:强>
https://hub.docker.com/_/ruby/
https://oncletom.io/2015/docker-encoding/