Имеет ли смысл создавать частные методы внутри модуля Rails ActiveSupport::Concern
?
Учитывая, что проблема связана с интеллектуальными модулями, которые в конечном итоге будут включены в другие классы - да, это так. Это просто переносимый код, извлекаемое поведение, и я хотел бы рассматривать его как часть моего контроллера (или модели и т. Д.), Когда я его пишу. Таким образом, вы просто объявляете методы private
или protected
, как обычно.
Возможно, сообщение, на которое вы ссылаетесь, обновлялось с 2013 года, но DHH делает именно это в одном из примеров:
module Dropboxed
extend ActiveSupport::Concern
included do
before_create :generate_dropbox_key
end
def rekey_dropbox
generate_dropbox_key
save!
end
private # <- Let's list some privates
def generate_dropbox_key
self.dropbox_key = SignalId::Token.unique(24) do |key|
self.class.find_by_dropbox_key(key)
end
end
end
Что касается методов класса private
, я согласен с @Hugo и сам никогда их не использовал, но вот как этого добиться:
module Dropboxed
extend ActiveSupport::Concern
included do
private_class_method :method_name
end
module ClassMethods
def method_name
end
end
end
person
jibiel
schedule
17.11.2015