执行heroku run rails db:migrate
后,我在堆栈跟踪中遇到了这个错误:
ActiveRecord :: StatementInvalid:PG :: UndefinedTable:ERROR:relation “类别”不存在: CREATE TABLE“products”(“id”序列主键,“title”字符变化,“description”字符变化,“category_id” 整数,“图片”字符变化,“视频”字符变化, “created_at” timestamp NOT NULL,“updated_at”timestamp NOT NULL,CONSTRAINT“fk_rails_fb915499a4”
FOREIGN KEY(“category_id”)REFERENCES“categories”(“id”))
然后我跑了heroku run:detached rake db:migrate
并且有效。
但是当我去网站的网址时,我收到了这个错误:
WelcomeRetroller中的ActiveRecord :: StatementInvalid #index
PG :: UndefinedTable:错误:关系“产品”不存在第1行:选择“产品”。* FROM“产品”订购“产品”。“cr ... ^:SELECT”products“。* FROM “products”ORDER BY“products”。“created_at”ASC LIMIT $ 1
编辑:
class WelcomeController < ApplicationController
def index
end
end
此错误也指向此行:
@all_products = Product.order(created_at: :asc).last(4)
在application_controller.rb
中定义如下:
def getProducts
@all_products = Product.order(created_at: :asc).last(4)
end
在@all_products
中使用了welcome/index.html.erb
变量来显示最近上传的4个产品。
它被称为:
<div class="text-center">
<% if @all_products.present? %>
<% @all_products.each do |p| %>
<a href="<%= p.picture() %>" data-toggle="lightbox" data-gallery="example-gallery" data-title="<%= p.title %>">
<%= image_tag(p.picture.url, size: '200x200', class: 'rounded') %>
</a>
<% end %>
<% end %>
</div>
答案 0 :(得分:0)
rake db:migrate
在一次性流程中运行,您的Web进程已经启动并缓存了原始数据库架构,您需要在运行迁移后重新启动应用程序以重新缓存新架构。