0

変数 min_age よりも古いユーザーによって作成されたすべてのアセットを見つけようとしています。現在、私はこの呼び出しでそれをやろうとしています:

assets = Asset.joins(:user).where("age(users.handles.first.birthday) >= ?", min_age)

各アセットには 1 人のユーザーがいて、各ユーザーは複数のハンドルを持つことができます。

class User < ActiveRecord::Base

  has_many :handles, :class_name => "UserHandle"

def get_current_age
    age(self.handles.first.birthday)
end

これが私が得たエラーです:

ActiveRecord::StatementInvalid in SearchController#data

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.birthday) >= 90)' at line 1: SELECT `assets`.* FROM `assets` INNER JOIN `users` ON `users`.`id` = `assets`.`user_id` WHERE (age(users.handles.first.birthday) >= 90)

Rails.root: /Users/Jimmy/Documents/Launchpad Toys/LPT_Repositories/orbit-analytics
Application Trace | Framework Trace | Full Trace

app/controllers/search_controller.rb:254:in `find_by_user_current_age'
app/controllers/search_controller.rb:121:in `robot_search'
app/controllers/search_controller.rb:384:in `data'
4

0 に答える 0