- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试逐步浏览使用 find_each 检索到的记录列表。
我根据此 stack overflow post 中的答案构建了我的 Controller 代码。 ,但我仍然收到“没有给出 block (产量)”错误。
我刚刚开始接触 Ruby 和 Rails,还没有找到关于 block 和产量的完整解释(尽管有很多基本示例)来满足我的需要。
我的代码如下所示:
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 所在行。
我知道我需要一个 block 来屈服,但在这种特殊情况下它到底是什么样子的我却无法理解。
感谢您的任何建议。
最佳答案
您正在向 where
传递一个 block ,而没有向 find_each
传递任何 block 。你不能那样做。您需要反转此行中的 find_each
和 where
,顺序很重要,因为该 block 将传递到最后调用的方法:
Assignment.find_each.where(:subject_id => id) do |assignments|
它应该是:
Assignment.where(:subject_id => id).find_each do |assignments|
您的下一个问题是您尝试迭代分配
,这是一个单一的分配。 find_each
已经为您进行了迭代,一次将一个赋值传递到 block 中。该 block 应为:
Assignment.where(:subject_id => id).find_each do |assignment|
new_assignment = assignment.dup
new_assignment.subject_id = new_subject.id
new_assignment.save
end
我将假设您的主题有许多作业,因为您的 Assignment
类中有一个 subject_id
。如果是这种情况,编写循环的最终且最正确的方法是:
old_subject.assignments.each do |assignment|
new_assignment = assignment.dup
new_assignment.subject_id = new_subject.id
new_assignment.save
end
关于ruby-on-rails-3 - 本地跳转错误 find_each 上没有给出 block (yield)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963519/
使用 PostgreSQL 运行 Rails 3, 我有一个迁移,更新数百万条小记录。 Record.find_each do |r| r.doing_incredibly_complex_stu
有没有办法在django中使用find_each? 根据 rails 文档: This method is only intended to use for batch processing of l
我有类似这样的代码。 @deliveries = User.find_uniq_deliveries(...) . . . (many conditions added using 'named_sc
我有这样的关系 users = User.joins(:occupation).includes(:occupation) count = 0 users.find_each do |u| cou
我有类似这样的代码。 @deliveries = User.find_uniq_deliveries(...) . . . (many conditions added using 'named_sc
我正在查看说明如何使用“find_each”方法的官方 Rails 文档。这是他们给出的例子 Person.where("age > 21").find_each do |person| pers
引用:http://api.rubyonrails.org/classes/ActiveRecord/Batches.html . 是执行find_each线程安全?换句话说,我可以做类似的事情吗 c
给定这个模型: class User < ActiveRecord::Base has_many :things end 然后我们可以这样做:: @user = User.find(123) @u
我收到以下错误: PGError: ERROR: operator does not exist: character varying >= integer LINE 1: ...CT "game
我尝试使用 ActiveRecord 的 find_each 方法运行大约 50,000 条记录的查询,但它似乎忽略了我的其他参数,如下所示: Thing.active.order("created_
我有一个 Rails 应用程序,可以处理 mysql 数据库中的大量(数百万)条记录。一旦开始工作,其内存使用量就会以每秒 50MB 的速度快速增长。使用 oink 等工具,我能够将根本原因缩小到一个
我正在尝试编写一个函数,该函数按一个非常大的表(数百万行)中的某些列进行分组。有什么方法可以让 find_each 处理这个问题,或者如果我不想按 id 列排序是不可能的吗? 我查询的 SQL 是:S
我可以像这样使用 Rails find_each 方法: User.find_each(:batch_size => 10000) do |user| ------ end 使用 find_eac
因为我从物化 View 中提取了数千条记录 Matview , 我想用 find_each将其分成批处理以释放内存。 但是,当我运行以下命令时: Matview.where('p_id > 100')
在 Rails 中,find_each和 where用于从 ActiveRecord 支持的数据库中检索数据。 您可以将查询条件传递给where,例如: c = Category.where(:nam
我正在从我的数据库中加载数据,并且正在使用分组依据进行求和计算。 ElectricityReading.sum(:electricity_value, :group => "electricity_t
我正在尝试逐步浏览使用 find_each 检索到的记录列表。 我根据此 stack overflow post 中的答案构建了我的 Controller 代码。 ,但我仍然收到“没有给出 block
我有一个包含超过 50 万条记录的表,目前我正在以这种方式获取数据: Account.find_each(:conditions =>{:status =>STATUS[:waiting]}) d
我想知道如何在 rspec 中测试 find_each 调用。我习惯于简单地 stub 我希望我的模型返回的内容,因此我不会像这样依赖数据库中的测试数据: MyClass.stub(:find).an
我是一名优秀的程序员,十分优秀!