Я не уверен, что здесь происходит. У меня есть объем, который я пытаюсь создать, который работает с моей ассоциацией:рельсы: используя столбцы ассоциированной модели в: где
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