我正在尝试逐步浏览使用 find_each 检索的记录列表。
我在这个堆栈溢出帖子中的答案上设计了我的控制器代码,但我仍然收到“No Block Given (Yield)”错误。
我刚刚开始使用 Ruby 和 Rails,我还没有找到一个完整的解释(尽管有很多基本的例子)块和产量,这给了我我需要的东西。
我的代码如下所示:
def select_save
@class = params[:class]
@student_id = params[:id]
@class.each do |id|
old_subject = Subject.find(id)
new_subject = old_subject.dup
new_subject.student_id = @student_id
new_subject.save
Assignment.find_each.where(:subject_id => id) do |assignments|
assignments.each do |a|
new_assignment = a.dup
new_assignment.subject_id = new_subject.id
new_assignment.save
end
end
end
respond_to do |format|
format.html { redirect_to @student, :notice => 'Subject and assignments created.' }
end
end
并且错误指向带有 find_each 的行。
我知道我需要一个块来让步,但是在这种特殊情况下,这到底是怎么回事却让我无法理解。
感谢您的任何建议。