Я попытался использовать проблемы в своем проекте. Я хотел бы построить метод, чтобы получить дату на французском языке для каждой модели, которую у меня есть. Вот мой код. В настоящее время я получаю ошибку: неправильный тип аргумента Класс (ожидаемый модуль) в строке включает DateTime в модели.Использование концерна в рельсах 4
Вот моя модель файла/проблемы/date_time.rb
module DateTime
extend ActiveSupport::Concern
def self.included(base)
base.extend ClassMethods
base.class_eval do
scope :disabled, -> { where(disabled: true) }
end
end
# methods defined here are going to extend the class, not the instance of it
module ClassMethods
def date_string
h = {1=>'Janvier',2=>'Février',3=>'Mars',4=>'Avril',5=>'Mai',6=>'Juin',7=>'Juillet',8=>'Août',9=>'Septembre',10=>'Octobre',11=>'Novembre',12=>'Décembre'}
"#{self.created_at.day}-#{h[self.created_at.month]}-#{self.created_at.year}"
end
end
end
Вот мои модели файла/demands.rb
class Demand < ActiveRecord::Base
include DateTime
belongs_to :skill
belongs_to :project
belongs_to :user
has_many :transactions
validates :project, presence: true
validates :skill, presence: true
validates :title, presence: true
end
Заранее спасибо за вашу помощь !
Кроме того, ваш метод выше будет экземпляром вместо метода класса. – max
Большое спасибо за вашу помощь! Оба ваших ответа помогли мне понять мою ошибку :) – saraf