Как передать параметр в Concern для модели в ROR?

Есть к примеру некая функция в concern которая должна принимать параметр из модели в которой его подключили, как это сделать лучше всего?

Например:

Concern:
module Fields
  extend ActiveSupport::Concern

  def set_fields
    self.fields(variable_from_model).each do |f|
      # some code
    end
  end


Model:
class User < ActiveRecord::Base
  include ::Fields
  variable_from_model= 'user'
end


Вот как передать такую переменную в concern чтобы сделать правильную выборку из БД, т.е. каждая модель вставляет своё значение в variable_from_model
  • Вопрос задан
  • 2417 просмотров
Пригласить эксперта
Ответы на вопрос 1
RooTooZ
@RooTooZ Автор вопроса
Все оказалось просто!

Concern:
module Fields
  extend ActiveSupport::Concern

  included do
    class_attribute :entity
  end

  def set_fields
    self.fields(self.class.entity).each do |f|
      # some code
    end
  end


Model:
class User < ActiveRecord::Base
  include ::Fields
  self.entity = 1
end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы