8

如何实现 ActiveModel 关联(无表嵌套模型)?

例如:

book has many chapters

使用 ActiveRecord,我将创建两个模型并将它们与has_manybelongs_to相关联。但是 ActiveModel 没有这样的功能。我该如何实施?

4

3 回答 3

7

对于 >= 2.3.x 的 rails 版本,您可以使用activerecord-tableless gem。使用该 gem,您可以在没有数据库的情况下进行关联和验证。

更新

我已被添加为 gem 的作者,并且我已更新 gem 以支持较新的 Rails 版本。所以现在我们可以在Rails 版本 >= 2.3中拥有具有关联的无表模型

于 2011-08-05T10:07:50.137 回答
5

你根本不能那样做。它不是活动记录。

您可以在以下位置查看 ActiveModel 文档(和源代码):

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

我想你必须以老式的方式来做,使用一系列章节和章节中对书的引用。

希望这可以帮助!

于 2011-07-06T08:59:37.070 回答
0

您可以查看此答案以了解另一种方法。

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
于 2015-08-05T14:17:05.183 回答