2013-07-01 56 views
3

在Rails(virtusactive_attr,activemodel)中查看了幾個無表解決方案之後,很明顯Rails關聯不受支持。我的問題是爲什麼不呢?是否有一些明顯的原因導致我錯過了?看起來像組織會非常有用,但在我看到的所有例子中都被忽略了。爲什麼Rails無表模型包含關聯?

+0

你是什麼意思不支持? ActiveModel通過'has_many:children'和'belongs_to:parent'支持關聯[ – sircapsalot

+0

]看到這個問題,例如http://stackoverflow.com/questions/6593428/ruby-on-rails-3-3-1-activemodel-associations-tableless -nested-models – Dty

+0

這是2011年的一個問題,請嘗試使用ActiveRecord官方文檔 - http://guides.rubyonrails.org/association_basics.html#the-types-of-associations – sircapsalot

回答

1

我不知道如何回答你爲什麼不支持這個問題的問題是你可以用Rails 4+支持它的一種方法。這不需要你有一個數據庫表,並且還可以讓你訪問諸如驗證,關聯以及像after_initialize之類的一些回調。

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