find_eachで取得されるレコードのリストをステップスルーしようとしています。
このスタックオーバーフローポストの回答に基づいてコントローラーコードをパターン化しましたが、それでも「No Block Gived(Yield)」エラーが発生します。
私はRubyとRailsを始めたばかりですが、必要なものを提供するブロックとyieldの本格的な説明(基本的な例はたくさんあります)をまだ見つけていません。
私のコードは次のようになります:
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の行を指しています。
私は屈服するためのブロックが必要であることを知っていますが、この特定のケースでそれがどれほど正確に見えるかは私を免れます。
提案をありがとう。