2012-12-21 95 views
0

我使用的是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'^ 

這些都是我categoryproduct & 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 

任何想法可能會導致什麼呢?

謝謝。

+0

你確定用category_product主鍵遷移了heroku db嗎? RailsAdmin再次懷念id:「ORDER BY category_products。desc」必須是「ORDER BY category_products.id desc」 –

+0

是的......我確實。當我檢查Heroku控制檯中的CategoryProduct模型時,我看到:CategoryProduct => CategoryProduct(id:integer,product_id:integer,category_id:integer,purchases_count:integer,created_at:datetime,updated_at:datetime) ' – marcamillion

+0

順便說一句,我該如何解決該查詢?不太確定如何更改該查詢....或者如果我應該。 – marcamillion

回答

0

原來問題出在Heroku身邊(我假設)。

我對代碼庫做了另一次不同的更新,這個問題似乎消失了。

+0

我知道它,我知道它,我知道它) –

+4

以及那不是在heroku方面的問題...我有什麼經驗是數據庫獲取更新,但應用程序仍然不知道數據庫更改所以應該使用heroku重新啓動後運行遷移。 – Gull

+0

Hrmm .....偉大的建議。下次我會盡力記住這一點。 – marcamillion

相關問題