我使用的是RailsAdmin,這是我在RailsAdmin中點擊我的模型CategoryProduct
時得到的錯誤Heroku --ActionView :: Template :: Error(PG :: Error:錯誤:列category_products.desc不存在
這是錯誤的樣子:
Started GET "/admin/category_product" for 67.230.41.62 at 2012-12-21 23:20:07 +0000
2012-12-21T23:20:07+00:00 app[web.1]:
2012-12-21T23:20:07+00:00 app[web.1]: ActionView::Template::Error (PG::Error: ERROR: column category_products.desc does not exist
2012-12-21T23:20:07+00:00 app[web.1]: LINE 1: ...ry_products".* FROM "category_products" ORDER BY category_p...
2012-12-21T23:20:07+00:00 app[web.1]: ^
2012-12-21T23:20:07+00:00 app[web.1]: : SELECT "category_products".* FROM "category_products" ORDER BY category_products. desc LIMIT 20 OFFSET 0):
2012-12-21T23:20:07+00:00 app[web.1]: 120: %tbody
2012-12-21T23:20:07+00:00 app[web.1]: 121: - @objects.each do |object|
2012-12-21T23:20:07+00:00 app[web.1]: 122: %tr
2012-12-21T23:20:07+00:00 app[web.1]: 123: %td
2012-12-21T23:20:07+00:00 app[web.1]: 124: = check_box_tag "bulk_ids[]", object.id, false
2012-12-21T23:20:07+00:00 app[web.1]: 125: - if @other_left_link ||= other_left && index_path(params.except('set').merge(params[:set].to_i != 1 ? {:set => (params[:set].to_i - 1)} : {}))
2012-12-21T23:20:07+00:00 app[web.1]: 126: %td.other.left= link_to "...", @other_left_link, :class => 'pjax'^
這些都是我category
,product
& category_product
型號:
Category.rb
# == Schema Information
#
# Table name: categories
#
# id :integer not null, primary key
# name :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
class Category < ActiveRecord::Base
attr_accessible :name
has_many :category_products do
def with_products
includes(:product)
end
end
has_many :products, :through => :category_products
def top_products(number)
category_products.with_products.order("purchases_count DESC").limit(number).map {|c| c.product} # product included
end
end
Product.rb
# == Schema Information
#
# Table name: products
#
# id :integer not null, primary key
# name :string(255)
# description :string(255)
# price :float
# vendor_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# image :string(255)
#
class Product < ActiveRecord::Base
attr_accessible :name, :description, :price, :vendor_id, :image, :category_ids
mount_uploader :image, ImageUploader
belongs_to :vendor
has_many :category_products do
def with_categories
includes(:category)
end
end
has_many :categories, :through => :category_products
def top_categories(number)
category_products.with_categories.order("purchases_count DESC").limit(number).map {|c| c.category} # category included
end
end
Category_Product
# == Schema Information
#
# Table name: category_products
#
# id :integer not null, primary key
# product_id :integer
# category_id :integer
# purchases_count :integer default(0)
# created_at :datetime not null
# updated_at :datetime not null
#
class CategoryProduct < ActiveRecord::Base
attr_accessible :product_id, :category_id, :purchases_count
belongs_to :product
belongs_to :category
validates_uniqueness_of :product_id, :scope => :category_id
end
任何想法可能會導致什麼呢?
謝謝。
你確定用category_product主鍵遷移了heroku db嗎? RailsAdmin再次懷念id:「ORDER BY category_products。desc」必須是「ORDER BY category_products.id desc」 –
是的......我確實。當我檢查Heroku控制檯中的CategoryProduct模型時,我看到:CategoryProduct => CategoryProduct(id:integer,product_id:integer,category_id:integer,purchases_count:integer,created_at:datetime,updated_at:datetime) ' – marcamillion
順便說一句,我該如何解決該查詢?不太確定如何更改該查詢....或者如果我應該。 – marcamillion