【问题标题】:How to load only ActiveModel validations?如何仅加载 ActiveModel 验证?
【发布时间】:2016-06-03 16:43:19
【问题描述】:

我想在一个小的 Roda 应用程序中使用 ActiveModel::Validations,我真的想保持它的小,我想避免在其中加载整个 ActiveModel。有没有办法只需要ActiveModel::Validations

至少用activemodel-4.2.6. 尝试require 'active_model/validations' 结果是

/home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations/format.rb:4:in `<module:Validations>': uninitialized constant ActiveModel::Validations::EachValidator (NameError)
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations/format.rb:3:in `<module:ActiveModel>'
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations/format.rb:1:in `<top (required)>'
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations.rb:405:in `require'
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations.rb:405:in `block in <top (required)>'
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations.rb:405:in `each'
        from /home/bbozo/.rvm/gems/ruby-2.2.4/gems/activemodel-4.2.6/lib/active_model/validations.rb:405:in `<top (required)>'

嗯,好的,写这个问题我找到了解决方案^_^

【问题讨论】:

    标签: validation activemodel


    【解决方案1】:

    我设法加载“仅”ActiveModel 验证及其依赖项,我最终需要

    require 'active_support/concern'
    require 'active_model/validator'
    require 'active_model/validations'
    require 'active_model/naming'
    require 'active_model/callbacks'
    require 'active_support/callbacks'
    require 'active_model/translation
    

    只是为了通过:

    class Foo
      include ActiveModel::Validations
    end
    

    所以看来我需要整个活动模型或寻找替代验证框架。

    【讨论】:

    • 是的,我需要主动支持/关注,并且无法解决问题的无方法错误(尽管上面的每个示例都需要)
    • 好点,主动支持/关注通常是我项目的一部分,所以我没有选择那个!更新了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多