Ваш вопрос не ясен.Под «моделями» вы подразумеваете модели на основе базы данных, которые используют ActiveRecord, верно?
Обычно проверка не является «файлом», а представляет собой серию утверждений в файле модели.То же самое для объявлений отношений.
Вы можете разбить содержимое модели на любое количество файлов.Техника зависит от того, хотите ли вы, чтобы другие файлы содержали методы экземпляра или методы класса.
Проще всего иметь методы экземпляра в других файлах.Например,
# file foo.rb
class Foo < ActiveRecord::Base
include FooMethods
# --- callbacks --- #
before_create :record_signup # "before_create" is a "callback".
# See http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
# note that the method could also be from a different class altogether:
before_save EncryptionWrapper.new
# See section "Types of callbacks" in the api url referred to above
# --- relationships --- #
belongs_to :foobar
has_many :bars
# --- Class Methods --- #
def Foo.a_method_name(id)
...
end
end
~~~~~~~~~~~~~~~~~~~~~~~~~~~
# file foo_methods.rb
module FooMethods
def method1
...
end
def method2
...
end
private
def record_signup # define the callback method
self.signed_up_on = Date.today
end
end
Вне руки, я не могу поместить переопределение обратного вызова
before_create
в файл, отличный от основного класса моделифайл.Не было бы трудно понять.Но независимо от того, насколько легко было бы поместить другой файл, я бы не рекомендовал его с точки зрения ясности кода.