ここで何が起こっているのか分かりません。私は私の協会と連携し、その作成しようとしている範囲を持っている:rails:関連付けられているモデルの列を使用しています。
class Subscription < ActiveRecord::Base
belongs_to :subscriber, :class_name => "User"
belongs_to :subscribable, :polymorphic => true
end
create_table :products do |t|
t.string :name
t.decimal :price
t.decimal :cost_per_unit
t.integer :user_id
end
create_table :subscriptions do |t|
t.string :name
t.decimal :price
t.decimal :cost_per_unit
t.integer :subscriber_id
t.integer :subscribable_id
t.string :subscribable_type
end
class Product < ActiveRecord::Base
has_many :subscriptions, :as => :subscribable, :dependent => :destroy
def self.lower_prices
Product.includes(:subscriptions).
where("products.price < subscriptions.price OR products.cost_per_unit < subscriptions.cost_per_unit")
end
end
私はサブスクリプションに製品の低価格を比較しようとしているが、これは私にエラーを与える:
ActiveRecord::StatementInvalid in Pages#subscribed_products
PGError: ERROR: missing FROM-clause entry for table "subscriptions"
LINE 1: ... WHERE (user_id != 2) AND (products.price < subscripti...
^
: SELECT COUNT(*) FROM "products" WHERE (user_id != 2) AND (products.price < subscriptions.price OR products.cost_per_unit < subscriptions.cost_per_unit)
何が間違っていますか?
「def」が誤って入力されていますか? –
@DaveNewtonうん、それを忘れてしまった。 – LearningRoR
クエリに関連するモデルサブスクリプションが表示されません。モデル名が正しいことを確認してください。 – naren