从版本4.2.6升级的Rails时,Rails 5.2.1 Active Admin ActionView :: Template :: Error

时间:2018-10-26 12:43:03

标签: ruby-on-rails rubygems activeadmin actionview

我已将Rails版本从4.2.6更新为5.2.1。

当尝试访问admin / login url时出现错误

  

ActionView :: Template :: Error(参数数量错误(给定3个,预期为0..1)):       1:insert_tag active_admin_application.view_factory [“ page”]

我尚未覆盖应用程序中活动管理员视图的任何部分。

也不使用与分页有关的宝石。

我正在使用以下版本

const filterSo = response => 
   response.filter (item => 
      Object.keys (item)
            .map (lowerFirst)
            .some (key => filters[key] && filters[key] === item[key])
    )

错误日志的完整跟踪是

ruby 2.3.4
gem 'rails', '5.2.1'
gem 'activeadmin', '~> 1.3.0'
gem 'rails_friendly_urls', '~> 1.0.0'

有人可以告诉我,我要去哪里错了。

2 个答案:

答案 0 :(得分:0)

rails_friendly_urlsnot been updated since 2015,我很确定它已经过时了,您必须删除或替换它才能升级到Rails 5,但ActiveAdmin并不存在。

答案 1 :(得分:0)

我对此有解决方案,

错误是由于rails_friendly_urls宝石引起的。

在rails_friendly_urls宝石https://github.com/calonso/rails_friendly_urls/blob/master/lib/rails_friendly_urls.rb

case RailsFriendlyUrls.rails_version
when '4.2'
  require 'rails_friendly_urls/urls/rails4_2'
when '4.0', '4.1'
  require 'rails_friendly_urls/urls/rails4_0'
when '3.2'
  require 'rails_friendly_urls/route_sets/rails3'
else
  raise NotImplementedError.new "Rails Friendly URLs gem doesn't support Rails #{Rails.version}"
end

上面的部分已经写好,自2015年以来未更新。

所以我们可以在本地拥有gem并将上面的文件更改为

case RailsFriendlyUrls.rails_version
when '4.2', '5.2'
  require 'rails_friendly_urls/route_sets/rails4_2'
  require 'rails_friendly_urls/urls/rails4_2'
else
  raise NotImplementedError.new "Rails Friendly URLs gem doesn't support Rails #{Rails.version}"
end

这将在rails 5.2.1中支持