Ruby on Rails 3 (3.1) Ассоциации ActiveModel (вложенные модели без таблиц)
Как реализовать ассоциации ActiveModel (вложенные модели без таблиц)?
Например:
book has many chapters
С ActiveRecord я бы создал две модели и связал их с has_many и serve_to. Но ActiveModel не имеет такой функциональности. Как я могу это реализовать?
3 ответа
Вы просто не можете сделать это таким образом. Это не активная запись.
Вы можете проверить документацию ActiveModel (и исходный код) по адресу:
https://github.com/rails/rails/tree/master/activemodel
Я думаю, что вы должны сделать это по-старому, используя массив глав и ссылки на книги в главах.
Надеюсь это поможет!
С версиями rails >= 2.3.x вы можете использовать http://rubygems.org/gems/activerecord-tableless. С этим драгоценным камнем вы можете иметь ассоциации и проверки без базы данных.
Обновить
Я был добавлен в качестве автора в гем и обновил гем для поддержки более новых версий Rails. Так что теперь у нас могут быть безбличные модели с ассоциациями в версиях Rails> = 2.3
Вы можете проверить этот ответ для другого способа сделать это.
class Tableless < ActiveRecord::Base
def self.columns() @columns ||= []; end
def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
end
attr_accessor :id, :name, :value
has_many :stuff_things
has_many :things, :through => :stuff_things
end