【发布时间】:2011-11-07 15:35:18
【问题描述】:
例如:
环境:
Ruby 1.9.2
Rails 3.0.5
Mongoid
我有一个调查模型并在其中嵌入了许多问题。现在我想在surveys_controller.rb中定义一个函数“publish”,它可以根据Survey的记录(即对象)动态创建模型:
#surveys_controller.rb
def publish
@survey = Survey.find(params[:id])
@questions = Survey.questions
... how to build a model? ...
@questions.each do |question|
... and then how to add fields (named with question.title) and define type (named with question.type) ...
end
end
【问题讨论】:
-
我不确定你到底在问什么。您是要实例化现有模型(例如 Question 模型)还是真正创建一个全新的模型对象(称为什么?),它将在数据库中创建一个全新的表......在运行中?顺便说一句,我建议不要这样做……也许如果你解释一下为什么你认为你需要这样做,我们可以重新设计你的设计并做一些可以在现有代码库中更多工作的事情。
-
@Taryn 是对的,您表达它的方式似乎将对象与类混淆,将模型与来自该模型的记录混淆。我认为您想要的是创建一个与您的
Survey记录相关联的Question记录,所以我将回答如何做到这一点 - 但如果您真的将对象与类混淆,您应该真正了解更多关于 OOP ,这真的很重要。
标签: ruby-on-rails object mongoid models