我正在尝试使用mailgun在heroku服务器上创建一个“联系我们”页面。我相当自信我把它设置正确(我正在通过跟随upskillcources.com为这个项目做饭),但我总是得到这个错误“我们很抱歉,但出了点问题。” 以下是适用于我的heroku日志:
2017-05-05T06:16:10.020320 + 00:00 app [web.1]:WHERE a.attrelid ='“contacts”':: regclass
2017-05-05T06:16:10.020321 + 00:00 app [web.1]:AND a.attnum> 0而不是a.attisdropped
2017-05-05T06:16:10.020322 + 00:00 app [web.1]:订购a.attnum
2017-05-05T06:16:10.020323 + 00:00 app [web.1] :):
2017-05-05T06:16:10.020344 + 00:00 app [web.1]:F,[2017-05-05T06:16:10.020309#4]致命 - :[2777b122-a496-4a3d-b6b7-08b32fc56cd4]
2017-05-05T06:16:10.020377 + 00:00 app [web.1]:F,[2017-05-05T06:16:10.020344#4]致命 - :[2777b122-a496-4a3d-b6b7-08b32fc56cd4] app / controllers / contacts_controller.rb:3:在'new'
我不知道错误日志中的代码可能出现什么问题,特别是因为我可以看到contacts_controller.rb文件与使用相同资源upskill资源的多人的github上找到的相同项目代码相同。
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(contact_params)
if @contact.save
name = params[:contact][:name]
email = params[:contact][:email]
body = params[:contact][:comments]
ContactMailer.contact_email(name, email, body).deliver
flash[:success] = "Message sent."
redirect_to new_contant_path #this should be contact path I think, but a c9 error suggested this instead and wouldn't work without the change dispite it being different than the codes on github for the same project.
else
flash[:danger] = @contact.errors.full_messages.join(", ")
redirect_to new_contact_path
end
end
private
def contact_params
params.require(:contact).permit(:name, :email, :comments)
end
end
请告诉我以后的参考资料我将如何更好/更具体地在这里提问,对不起我制作它有多困难,这是我的第一个编程项目超越'你好世界'和一个待办事项非常感谢您抽出宝贵时间!
答案 0 :(得分:0)
您的日志表明您在数据库中没有表。 您需要创建并运行迁移。详情请见http://edgeguides.rubyonrails.org/active_record_migrations.html
此外,您需要记住Heroku默认情况下不会为您运行迁移。因此,您需要在部署代码后调用heroku run rake db:migrate
。但是,您可以通过向Procfile添加release命令来自动执行此过程。详细说明:http://aspiringwebdev.com/run-rails-migrations-automatically-on-heroku/