Новой Руби \ Rails, пристыдить меня :(Рубин Mixin лучшие практики
Я развивающийся двигатель для личного пользования (простой админ-панель). То, что я хочу, чтобы иметь возможность конфига мои основные приложений модели, как это:
class User < ActiveRecord::Base
include Entropy::Configurable
entropy_config do
form_caption 'Editing user'
end
end
А потом в шаблонах двигателя сделать это: модуль
<h1><%= @object.entropy_config :form_caption %></h1>
двигателя:
module Entropy
module Configurable
def self.included(base)
## to call entropy_config in model class
base.send :extend, ClassMethods
end
def entropy_config(arg)
## ... I'm missing this part
end
module ClassMethods
@@config = { ... }
def entropy_config (&block)
class_eval &block
end
def form_caption(arg)
// skipping class identification
@@config[:user][:form_caption] = arg
end
end
end
end
Проблема в том, что я не могу получить доступ к @@ config из настраиваемого модуля, фактически, когда я вызываю entropy_config в @object. Что я делаю неправильно?
Что вы имеете в виду не имеют доступа, переменная не существует? –