Ruby on rails 是否有一种方法可以根据其他模型构建模型';谁的唱片?

Ruby on rails 是否有一种方法可以根据其他模型构建模型';谁的唱片?,ruby-on-rails,object,mongoid,models,Ruby On Rails,Object,Mongoid,Models,例如: 环境: Ruby 1.9.2 Rails 3.0.5 蒙哥德 我有一个调查模型,里面有很多问题。现在我想在surveys_controller.rb中定义一个函数“publish”,它可以根据Survey的记录(即对象)动态创建模型: 我假设你的模型是这样的: class Survey < ActiveRecord::Base has_many :questions end class Question < ActiveRecord::Base belongs_to

例如:

环境:

Ruby 1.9.2

Rails 3.0.5

蒙哥德

我有一个调查模型,里面有很多问题。现在我想在surveys_controller.rb中定义一个函数“publish”,它可以根据Survey的记录(即对象)动态创建模型:


我假设你的模型是这样的:

class Survey < ActiveRecord::Base
  has_many :questions
end

class Question < ActiveRecord::Base
  belongs_to :survey
end
您可能需要将
验证\u关联:问题
添加到您的
调查
模型中,以确保您的问题在保存时有效。
更多信息可以在和中找到

我不确定你到底在问什么。您的意思是实例化一个现有的模型(如问题模型)还是真正创建一个全新的模型对象(称为what?),它将在数据库中创建一个全新的表。。。在飞行中?顺便说一句,我建议你不要那样做。。。也许如果你再解释一下为什么你认为需要这样做,我们可以重新设计你的设计,做一些在现有代码库中更有效的事情。@Taryn是对的,你表达它的方式似乎把对象和类混淆了,模型和这个模型的记录混淆了。我认为您想要的是创建一个与您的
调查
记录关联的
问题
记录,因此我将回答如何做-但是如果您真的将对象与类混淆,您应该真正了解更多关于OOP的知识,这一点非常重要。
class Survey < ActiveRecord::Base
  has_many :questions
end

class Question < ActiveRecord::Base
  belongs_to :survey
end
def publish
  # here, we instantiate an object by loading
  # a record from the Survey model
  @survey = Survey.find( params[:id] )
  # here, we instantiate an object of class Question,
  # associated to our object from class Survey.
  # the argument passed to the build() method 
  # depends on your form.
  @question = @survey.questions.build( params[:question] )
  # when we save our @survey, its associated @question
  # will be saved as well
  @survey.save
end