2017-04-02 47 views
0

我在Rails中創建了一個方法,我試圖在while循環中創建多個對象。由於某種原因,它似乎沒有觸及while循環,所以沒有創建對象。代碼如下:Rails-創建類時沒有打開while循環

def create 
@user = User.find(params[:participant][:user_id]) 
@activity = Activity.find(params[:activity_id]) 
weeks = @activity.weeks 
i = 1 
while i <= weeks do 
    puts "Test" 
    participant = Participant.new 
    participant.user_id = @user.id 
    participant.activity_id = @activity.id 
    participant.attended = false 
    participant.paid = false 
    participant.week = i 
    participant.save 

    i = i+1 
end 

redirect_to user_activities_path(@user, :id => @activity.id) 


end 

我使用提交表單工作正常,我可以從控制檯中看到,並在年底的redirect_to的方法工作,所以它只是似乎缺少循環。如果有幫助,周的價值是10.任何幫助將不勝感激。

+0

你也可以做'@activity.times do | i |',然後在循環中'participant.week = i + 1'。多一點紅寶石般的做法。 – Iceman

回答

1

如果已輸出多個Test,請嘗試participant.save!,我認爲參與者保存可能會失敗,如某些列無效,因此不會創建任何對象。

+0

謝謝,讓我看看它失敗的地方。 –

0

請檢查是否獲取活動記錄。我認爲你的第三條陳述應該如下。

@activity = Activity.find(params[:participant][:activity_id])