2017-05-05 61 views
0

我想使用mailgun在一个heroku服务器上'联系我们'页面。我相当有信心把它设置正确(我正在通过跟随upskillcources.com来喂养这个项目),但是我总是收到这个错误“我们很抱歉,但出了问题。” 下面是似乎适用于我Heroku的日志:在Heroku服务器上的mailgun Ruby错误

2017-05-05T06:16:10.020320 + 00:00应用程式[web.1]:WHERE a.attrelid = ' “联系人”' :: regclass的 2017-05-05T06:16:10.020321 + 00:00 app [web.1]:AND a.attnum> 0 AND NOT a.attisdropped 2017-05-05T06:16:10.020322 + 00:00 app [web.1 ]:ORDER BY 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] FATAL - :[2777b122-a496-4a3d-b6b7-08b32fc56cd4] app/controllers/contacts_controller.rb:3:in'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

信息 - [2777b122-a496-4a3d-b6b7-08b32fc56cd4] [2017-05-05T06:16: ]已完成500个内部伺服器错误(3ms)(ActiveRecord:1.8ms) 2017-05-05T06:16:10.020262 + 00:00 app [web.1]:F,[2017-05-05T06:16:10.020214#4]致命 - :[2777b122-a496-4a3d-b6b7-08b32fc56cd4] 2017-05-05T06:16:10.020312 + 00:00 app [web.1]:F,[2017-05-05T06:16:10.020264#4 ]致命 - :[2777b122-a496-4a3d-b6b7-08b32fc56cd4] ActiveRecord :: StatementInvalid(PG :: UndefinedTable:错误:关系“联系人”不存在 – Shem

回答

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/

+0

非常感谢你这么多!你发现问题和解决方案! – Shem

+0

@Shem很乐意帮助您。您能将答案标记为您的问题的解决方案吗? –

+0

对不起,这是我的第一篇文章 – Shem