ActiveModel::Validations in another module?

Hey,

I'm trying to specify validations with ActiveModel::Validations at the
module level, i.e., I wish to mix-in validations to a module. I am not
succeeding at this, however. How do I mix-in ActiveModel::Validations
into another module and use its methods just as I would in a class?

Thanks,

L

Hey,

I'm trying to specify validations with ActiveModel::Validations at the
module level, i.e., I wish to mix-in validations to a module. I am not
succeeding at this, however. How do I mix-in ActiveModel::Validations
into another module and use its methods just as I would in a class?

I'm not sure what you mean. Do you want want to put a shared set of
validations in a module or create a module that when included adds a
set of validations (among other things)

Fred

Frederick,

I seek to create Ruby modules that use ActiveModel::Validations. The
examples I have seen of ActiveModel::Validations all involve including
that module in classes. This is not what I want. I want to involve the
use of ActiveModel::Validations in a module, which I may then choose to
implement as a ruby class (even if after a few more descents via other
modules.)

In short, how do I do get to do the following (or its equivalent) in a
module?

validates :some_attribute, :numericality_of=>{:greater_than => 0,
:allow_blank=>true}

G

I think ActiveSupport::Concern is what you're looking for here - you
could create a module that defines validations like this:

module SomeModule
  extend ActiveSupport::Concern
  include ActiveModel::Validations

  included do
    validates :some_attribute, ...
  end
end

--Matt Jones

Matt,

Thanks, that did the trick, and I think it unlikely that I would have
found that without some help!

Now, on to what is likely the subject of yet another post: How do I
obtain the effect of ActiveModel::Validations#validates_associated if
applied to non-ActiveRecord classes where I seek to obtain nested
validations when the given class is composed of multiple Ruby objects...

G