gpt4 book ai didi

mysql - 在我的应用程序中定义查找器方法时遇到问题

转载 作者:行者123 更新时间:2023-11-29 07:23:13 25 4
gpt4 key购买 nike

我正在使用 Rails 4.2.3 和 MySQL 5.5.37。我想为我的模型编写一个查找方法,所以我写了这个(./app/models/user_object.rb):

class UserObject < ActiveRecord::Base

validates :day, :presence => true
validates_numericality_of :total
validates :object, :presence => true

def find_total_by_user_object_and_year
UserObject.sum(:total, :conditions => ['user_id = ?', params[:user_id], 'object = ?', params[:object], 'year(day) = ?', params[:year]])
end

end

但是,当我尝试像这样调用 Controller 中的方法时

@my_total = UserObject.find_total_by_user_object_and_year(session["user_id"], 3, @year)

我收到以下错误

undefined method `find_total_by_user_object_and_year' for #<Class:0x007fb7551514e0>

定义查找器方法的正确方法是什么?

最佳答案

使用self.method定义类方法:

def self.find_total_by_user_object_and_year
sum(:total, :conditions => ['user_id = ?', params[:user_id], 'object = ?', params[:object], 'year(day) = ?', params[:year]])
end

在这种情况下,类方法定义中的UserObject是多余的,因为它与self相同。现在你可以写:

UserObject.find_total_by_user_object_and_year(params)

关于mysql - 在我的应用程序中定义查找器方法时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35372183/

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