ユーザ(User
)毎にグループ化した アクセスログ(AccessLog
)一覧を作っております。
表示項目で 最新のアクセス日(newest_accessed_at
)をArelで取得したのですが、
その内容を ActiveRecord_Relationに入れると classがArel::Tableとなり .page
等のメソッドが実行できなくなります。
ActiveRecord_Relationの内容に うまく Arelの内容をマージすることは可能でしょうか?
lang
1# model 2class User < ActiveRecord::Base 3 has_many :access_logs 4end 5 6class AccessLog < ActiveRecord::Base 7 belongs_to :user 8end 9 10# model or controller 11@access_logs = AccessLog.all 12@access_logs = @access_logs.group(:user_id).project(arel_table[:accessed_at].maximum.as('`newest_accessed_at`')) # ここでclassがArelになる 13# @access_logs = @access_logs.group(:user_id).select("`access_logs`.*, max(`access_logs`.`accessed_at`) AS `newest_accessed_at`") # mysqlエラー 14@access_logs = @access_logs.page(10) # Arel::Tableだと `.page`が呼び出せない 15 16# views 17<% @access_logs.each do |access_log| %> 18 <tr> 19 <td><%= access_log.user.id %></td> 20 <td><%= access_log.user.name %></td> 21 <td><%= access_log.newest_accessed_at %></td> 22 </tr> 23<% end %> 24
あなたの回答
tips
プレビュー