validates_presence_of в модуле - PullRequest
       11

validates_presence_of в модуле

4 голосов
/ 11 февраля 2010

У меня есть модель. Я хочу импортировать в эту модель модуль. в этом модуле я хочу вставить validates_presence_of для моделей, которые его импортируют

Я хочу знать, если и как можно сделать что-то вроде этого:

class Ele < ActiveRecord::Base
  include Mod
end

module Mod
   validates_presence_of     :field
end

Спасибо

Ответы [ 2 ]

6 голосов
/ 11 февраля 2010

Вы можете использовать self.included крючок.

class Ele < ActiveRecord::Base
  include Mod
end

module Mod
  def self.included(base)
    base.class_eval do
      validates_presence_of :field
    end
  end
end
2 голосов
/ 11 февраля 2010

в приложении / models / awesome_model.rb

class AwesomeModel < ActiveRecord::Base

 inlude ModuleName

end

в lib / module_name.rb

require 'active_record'

module ModuleName
  def self.included(base_class)
    base_class.class_eval do

      include ModuleName::InstanceMethods

      belongs_to :some_model
      before_save :some_method
      .... validations, etc....



    end
  end

  module InstanceMethods

    def some_method
      ....
    end

  end
end

надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...