我面临一个问题,即我无法永久决定我的模型之一将具有哪些列。一个用例是这样的:
管理员创建了一个新数据集,他希望用户回答。在数据集中,管理员定义了几个不同格式和单位的数据点。
我可以想象这些类看起来类似于:
class Dataset < ActiveRecord::Base
has_many :measurements
has_many :profiles, :through => :measurements
has_many :datapoints, :through => :dataset_datapoint
end
# Join table
class Dataset_datapoint < ActiveRecord::Base
belongs_to :dataset
belongs_to :datapoint
end
class Datapoint < ActiveRecord::Base
has_many :dataset, :through => :dataset_datapoint
has_many :data
# create_table "datapoints" do |t|
# t.string :name
# t.string :format # e.g. string, decimal etc.
# t.string :unit # e.g. CM, pounds etc.
end
class Data < ActiveRecord::Base
belongs_to :datapoint
# create_table "data" do |t|
# t.integer :datapoint_id
# t.string :value # This column could be anything from string to decimal
end
在我看来,这似乎很动态,但仍然很容易实现。我担心的是如何对创建的每个数据模型进行验证?由于我无法对模型中的验证进行硬编码?更复杂的是,如果某些数据点需要额外的验证,例如最小值和最大值怎么办?
在此先感谢,乔纳斯