我在Rails应用程序中创建了一个ruby应用程序,该应用程序存储用户最喜欢的出版物,并且偶然遇到问题并需要一些帮助。rails 3动态创建存储在数据库表中的属性的模型
用户能够根据自己的选择添加尽可能多的不同类型的出版物,例如书籍,电影,报纸,文章等。每种出版物类型都有不同的属性,例如书籍可能有作者和出版商,以及一部电影可能有导演和制片人。单一出版物有许多属性。
我的应用程序当前看起来像这样:我有一个出版物资源存储类型的出版物。有一个名为attribs的资源,该资源存储特定发布的所有属性。最后还有第三个资源,名为收藏夹。
class Publication < ActiveRecord::Base
has_many :attribs
# columns in this model => name, hidden
# example (:name => "movie", :hidden => false)
end
class Attrib < ActiveRecord::Base
belongs_to :publication
# columns in this model => publication_id, name, datatype
# example (:publication_id => 1, :name => "Movie Title", :datatype => "string")
# example (:publication_id => 1, :name => "Director", :datatype => "string")
end
class Favourite < ActiveRecord::Base
# columns in this model => data, reason
# example (:data => "[serialized form data]", :reason => "some reason why its a fav")
end
当用户创建新的最喜欢的,并且选择的出版物,我想一个形式与用户选择了该特定发布的属性来生成。
有没有一种方法,我可以动态地创建一个模型/表单与存储在数据库表中的属性?
由于Formtastic是一个动态表单生成器,可以用它来创建表单吗?
对我来说,这似乎过于复杂,但我不能想出另一种方式来做到这一点,而没有在我的应用程序中有非常大量的表。