Ответ 1
Один из возможных способов - поместить общие методы в module
как это (RAILS_ROOT/lib/shared_methods.rb
)
module SharedMethods
def is_public?
# your code
end
end
Затем вам нужно включить этот модуль в каждую модель, которая должна иметь эти методы (т.е. app/models/your_model.rb
)
class YourModel < ActiveRecord::Base
include SharedMethods
end
UPDATE
В Rails 4 для этого используется новый способ. Вы должны поместить общий код, подобный этому, в app/models/concerns
вместо lib
Также вы можете добавить методы класса и выполнить код при включении, подобный этому
module SharedMethods
extend ActiveSupport::Concern
included do
scope :public, -> { where(…) }
end
def is_public?
# your code
end
module ClassMethods
def find_all_public
where #some condition
end
end
end