Мне нужна помощь с виртуальными атрибутами. Этот код отлично работает, но как его использовать внутри плагина. Цель состоит в том, чтобы добавить эти методы ко всем классам, использующим плагин.Виртуальные атрибуты в плагине
class Article < ActiveRecord::Base
attr_accessor :title, :permalink
def title
if @title
@title
elsif self.page
self.page.title
else
""
end
end
def permalink
if @permalink
@permalink
elsif self.page
self.page.permalink
else
""
end
end
end
Благодаря
Спасибо за ваш ответ, но я получаю эту ошибку: active_record/base.rb: 1959: в 'method_missing ': частный метод' attr_writer' называется для ActiveRecord :: Base: Класс (NoMethodError) Позвольте мне быть более конкретны: Я хочу, чтобы иметь возможность добавить это к моей модели: acts_as_page Каждая модель, которая использует этот плагин должен получить два виртуальных атрибутов (название и Permalink), который используется для создания или обновления модели страницы в before_save обратный вызов внутри плагина. Все работает нормально, но я не получаю значения названия и постоянной ссылки. Я бы вставлял код, но у меня заканчиваются символы :) –
Я обновил ответ, чтобы он соответствовал вашим требованиям. Я забыл, что attr_writer был закрыт, но это не должно быть проблемой с этим новым решением. – ryanb
Большое спасибо! Я забыл, что мне нужно расширить модуль в ActiveRecord. –