我有一个带有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
我是铁杆新手,但我知道这一定是错的。 任何指针都将非常感谢!
谢谢!