ruby-on-rails-3 – 本地跳转错误find_each上没有给定(yield)错误的块

ruby-on-rails-3 – 本地跳转错误find_each上没有给定(yield)错误的块,第1张

概述我正在尝试逐步浏览使用find_each检索的记录列表. 我在stack overflow post中的答案上构建了我的控制器代码,但我仍然得到“No Block Given(Yield)”错误. 我刚刚开始使用Ruby和Rails,我还没有找到一个完整的解释(很多基本的例子)块和产量,它给了我我需要的东西. 我的代码看起来像这样: def select_save @class = par 我正在尝试逐步浏览使用find_each检索的记录列表.

我在stack overflow post中的答案上构建了我的控制器代码,但我仍然得到“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的行.

我知道我需要一个块才能屈服,但在这个特殊情况下看起来究竟是什么让我失望.

谢谢你的任何建议.

解决方法@H_502_28@ 你将一个块传递给find_each的where和no块.你不能这样做.你需要反转find_each以及这一行的位置,顺序很重要,因为块被传递给最后调用的方法:

Assignment.find_each.where(:subject_ID => ID) do |assignments|

它应该是:

Assignment.where(:subject_ID => ID).find_each do |assignments|

您的下一个问题是您正在尝试迭代分配,这是一个分配. find_each已经为你做了迭代,一次将一个赋值传递给块.该块应为:

Assignment.where(:subject_ID => ID).find_each do |assignment|  new_assignment = assignment.dup  new_assignment.subject_ID = new_subject.ID  new_assignment.saveend

我将假设你的主题有很多作业,因为你的作业类中有一个subject_ID.如果是这种情况,编写循环的最终和最正确的方法是:

old_subject.assignments.each do |assignment|  new_assignment = assignment.dup  new_assignment.subject_ID = new_subject.ID  new_assignment.saveend
总结

以上是内存溢出为你收集整理的ruby-on-rails-3 – 本地跳转错误find_each上没有给定(yield)错误的块全部内容,希望文章能够帮你解决ruby-on-rails-3 – 本地跳转错误find_each上没有给定(yield)错误的块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存