如何使用另一个模型对象的初始化has_many创建和保存对象?

时间:2014-05-19 16:19:13

标签: ruby-on-rails-4 rails-activerecord

我有一个带有has_many关系的Challenge对象:week。

class Challenge < ActiveRecord::Base
  belongs_to :user
  has_many :weeks
end

在我的create方法中,我想初始化12个空的Week对象并将它们放在挑战上。

这是我目前的创建方法。我从示例rails 4 app获得了以下代码的基本轮廓。我不完全理解为什么build需要params.require

def create
  @challenge = current_user.challenges.build(params.require(:challenge).permit(:start_weight))
  if @challenge.save
    flash[:success] = "Challenge created!"
    redirect_to current_user
  end
end

我的第一直觉是添加这样的东西:

def create
  weeks = []
  12.times {weeks << Week.new}
  @challenge = current_user.challenges.build(challenge_params)
  @challenge.weeks = weeks
  if @challenge.save
    flash[:success] = "Challenge created!"
    redirect_to current_user
  end
end

我是铁杆新手,但我知道这一定是错的。 任何指针都将非常感谢!

谢谢!

0 个答案:

没有答案