私の友人は私がいくつかのクリーンアップを行うのを手伝ってくれました-しかしそれはレールのアクティブな記録的な方法のようには見えません。
最初に私はこのように書いた:
@count_users_approved = current_agent.users.map { |u| u.orders.where("created_at >= ? AND order_status_id = ?", DateTime.now.beginning_of_day, "3")}.count
#レコードを数えるのではなく、結果は次のように表示されていました:[0,0,1]
私の友人はこのように書くことでそれを修正しました:
@count_users_approved = Order.where("created_at >= ? AND user_id IN (?) AND order_status_id = ?", DateTime.now.beginning_of_day, current_agent.users.map(&:id), 2).count
これだけクリーンでActiveRocordタイプを記述できますか?
これが私のモデルの設計方法です。
class Agent < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :agent
has_many :orders
has_many :support_histories
has_one :card_info
end
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :order_type
belongs_to :order_status
end