Rails Admin和印象派宝石之间的冲突

时间:2014-06-12 11:34:46

标签: ruby-on-rails rails-admin

我正在使用最新版本的Impressionist和Rails Admin宝石,并想知道是否有人能够揭露我遇到的令人烦恼的冲突。问题大致记录在这里 - https://github.com/sferik/rails_admin/issues/1315,但模糊描述的解决方案对我不起作用。当我的清单模型中有is_impressionable行时,在使用rails s启动Rails服务器时出错:

    ...rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined local variable or method `is_impressionable' for Listing(no database connection):Class (NameError)

如果我首先启动服务器,然后添加' is_impressionable'一行,一切正常,所以问题只发生在初始化过程中。我不完全理解初始化过程,所以我不确定如何让它工作。

我已经尝试将所有rails_admin模型配置选项移动到各自的模型,而不是初始化程序中,这些选项没有任何效果。我的初始化程序中还有以下行:

    config.included_models = [Listing,ListingImage,AllOtherModelsHere...]

我尝试在这些模型名称周围添加单引号,这会导致以下错误,如github问题here中所述

    [RailsAdmin] Could not load model Listing, assuming model is non existing. (undefined local variable or method `is_impressionable' for Listing(no database connection):Class)

还有什么想法我可以尝试让这些宝石一起工作吗?每次我想重新启动服务器或生成迁移时,我都不想删除is_impressionable行...

2 个答案:

答案 0 :(得分:3)

不确定我是否有同样的问题,但我会发布对我有用的内容,以防万一有人为此而烦恼:

我正在使用rails 4.2.0的ruby 2.1.5项目以及我使用rails admin的其他宝石。 我试图设置这个问题时遇到了几个奇怪的问题。例如,如果我在某个模型中添加了is_impressionable调用,由于某种原因,该文件的执行在那里停止,我开始得到奇怪的错误,就像在is_impressionable下面声明的任何方法失败并且未定义错误一样。 所以我最终做的是:

class MyModel < ActiveRecord::Base
  include Impressionist::IsImpressionable
  is_impressionable
end

所以这解决了我的问题,现在我可以按预期访问@my_model_instance.impression_count

答案 1 :(得分:0)

我在初始化程序中将Klass的每次出现更改为'Klass'.constantize