атрибуты модели рельсов без соответствующего столбца в БД - PullRequest
4 голосов
/ 30 декабря 2008

У меня есть несколько моделей rails, которые не нуждаются в постоянстве, однако я бы хотел, чтобы rails думала, что модель действительно имеет атрибуты x, y, z, поэтому при вызове таких методов, как to_json в контроллере, я включаю их бесплатно

Например,

class ModelWithoutTableColumns << ActiveRecord::Base

def x
   return "Custom stuff here"
end

В базе данных нет столбца x для таблицы "ModelWithoutTable" (извините за слегка запутанное имя!)

У кого-нибудь есть идеи, как справиться с этим?

Ответы [ 4 ]

2 голосов
/ 08 ноября 2011

Похоже, вы хотите ActiveModel. Проверьте http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/ для великого прохождения Иегудой Кацем. В частности, раздел «Сериализация» для ваших to_json требований.

2 голосов
/ 30 декабря 2008

Только не наследуй от ActiveRecord :: Base

Редактировать: Вы пытались передать опции to_json, например: методы? Смотри здесь

1 голос
/ 30 декабря 2008

Возможно, вы также захотите проверить act_without_database, текущие сведения об этом здесь , но сайт в данный момент не работает. Вот сообщение на RubyFlow , оно с сегодняшнего дня.

1 голос
/ 30 декабря 2008

Это не сработает - ActiveRecord :: Base определяет to_json, но требует таблицы.

Вы должны проверить плагин ActiveRecord :: BaseWithoutTable. Вот как это использовать , а вот обновленная версия для Rails 2 .

Я не пробовал ни одного из них, поэтому никаких гарантий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...