Ruby on Rails 3 (3.1) ActiveModel Associations (tableless nested models)

前端 未结 3 1538
不知归路
不知归路 2021-01-12 07:01

How to impliment ActiveModel associations (tableless nested models)?

For example:

book has many chapters

With ActiveRecord I would

相关标签:
3条回答
  • 2021-01-12 07:40

    You simply can't do it that way. It is not active record.

    You can check ActiveModel documentation (and source code) at :

    https://github.com/rails/rails/tree/master/activemodel

    I guess you have to do it old fashion way, using an array of chapters and a reference to the book in the chapters.

    Hope this helps!

    0 讨论(0)
  • 2021-01-12 07:54

    You can check out this answer for another way to do it.

    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
    
    0 讨论(0)
  • 2021-01-12 08:02

    With rails versions >= 2.3.x you can use the activerecord-tableless gem. With that gem you can have associations and validations without a database.

    Update

    I have been added as author to the gem and I have updated the gem to support newer Rails versions. So now we can have tableless models with associations in Rails versions >= 2.3

    0 讨论(0)
提交回复
热议问题