gpt4 book ai didi

ruby-on-rails - Rails 更新 4.1.0 后,next 方法 (Class.first) 不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:04 25 4
gpt4 key购买 nike

我有一个看起来像这样的模型:

class Question < ActiveRecord::Base
belongs_to :level

def next
Question.first(:conditions => ['id > ? AND level_id = ?', self.id, self.level_id], :order => 'id ASC')
end

end

在我通过 rails 更新到版本 4.1.0 之前,这工作得很好。现在我收到这个错误:

ArgumentError in QuestionsController#answer invalid value for Integer(): "{:conditions=>[\"id > ? AND level_id = ?\""

我不知道如何解决这个问题。 rails 更新是否可能是造成此问题的原因?我在另一个应用程序中使用了完全相同的方法,并且该方法仍然有效。

最佳答案

first 方法在 Rails 4 中发生了变化。

在 Rails 3.2 之前,它可以接受条件参数,并且您的实现可以正常工作。这是 original documentation ,请注意它如何在使用它们之前检查 *args 的类型。

在 Rails 4 中,方法发生了变化(docs),现在它只接受整数限制。

您应该更新您的实现:

def next
Question.where('id > ? AND level_id = ?', id, level_id).order(id: :asc).first
end

关于ruby-on-rails - Rails 更新 4.1.0 后,next 方法 (Class.first) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23391885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com