如何根据其他模型的记录建立模型?

时间:2011-11-08 13:44:59

标签: ruby-on-rails model

例如:

环境:

Ruby 1.9.2

Rails 3.0.5

Mongoid

我有一个Survey模型,并在其中嵌入了许多问题。现在我想在surveys_controller.rb中定义一个函数“publish”,它可以根据Survey的记录(即对象)动态创建模型。 例如,我有一个调查对象(使用survey.id),对象实例有n个(调查对象可能不同)问题(每个问题都有quesiton.id)。创建调查对象后,我想相应地构建一个模型:使用“s{@survey.id}命名集合”并创建名为“q {@question.id}”的n个字段。

#surveys_controller.rb
def publish
  @survey = Survey.find(params[:id])
  @questions = Survey.questions
  ... how to build a model? ...
  ... and how to set collection name using "s{@survey.id}" ...
  @questions.each do |question|
    ... and then how to add fields (named with "q{question.id}") and define type (named with question.type) ...
  end
end

1 个答案:

答案 0 :(得分:0)

关注你的问题有点困难。但你在找这个吗?

@new_question = @survey.questions.build

http://guides.rubyonrails.org/association_basics.html#has_many-association-reference