DB を mysql から postgres に変更したところ、次のエラーが発生しました。
ActionView::Template::Error (PG::Error: ERROR: operator does not exist: character varying = integer
LINE 1: ...ELECT COUNT(*) FROM "agents" WHERE "agents"."client_id" = 1
するとき
client.agents.count
私はデータが次のように構成されています: クライアントには複数のエージェントがあり、 の場合にのみエージェントを追加できるので、この値を取得して比較するagents.count < X
ようなものを使用していますが、そのエラーが発生しています。client.agents.count
これを行うには手動のSQLを使用する必要がありますか? それとも私は愚かな何かを逃していますか?
コメントしてくださってありがとうございます
モデル情報
class Agent < User
belongs_to :client
attr_accessible :client_id
validates :client_id, presence: true
end
class Client < User
attr_accessible :appId, :expire_date, :legacy, :url, :plan_id, :chat_window_color, :chat_head_color, :chat_box_container_color, :chat_box_color, :tab_message, :greeting, :please_wait_message, :send_message_button, :comments_label, :offline_message
belongs_to :plan
has_many :agents, :dependent => :destroy
has_secure_password
after_initialize :init
#omited validations
private
#BEGIN PRIVATE METHODS
end
どちらもユーザーから継承します
class User < ActiveRecord::Base
self.abstract_class = true
attr_accessible :email, :name, :password, :password_confirmation
attr_accessor :updating_password
has_secure_password
before_save { self.email.downcase! }
#the controller must set updating_password to FALSE to avoid validation
def should_update_password?
updating_password || new_record?
end
end