0

提交表单以创建简单对象时,出现 SocketError:

Completed 500 Internal Server Error in 526ms
SocketError (getaddrinfo: Name or service not known):
app/controllers/posts_controller.rb:58:in `block in create'
app/controllers/posts_controller.rb:57:in `create'

我已经用 Google 搜索并通过 StackOverflow 进行了搜索,其他所有有类似错误的人似乎都在发送电子邮件。我不是——这只是一个用于创建属于用户的简单博客文章的表单。

此应用程序正在使用 SendGrid(尽管此特定功能不使用它),但是,即使在删除 SendGrid 之后,SocketError 仍然存在。

这是来自控制器的代码,在错误消息中引用:

  # POST /posts
  # POST /posts.json
  def create
    @user = User.find(params[:user_id])
    @post = @user.posts.new(params[:post])

    respond_to do |format|
      if @post.save
        format.html { redirect_to user_posts_path, notice: 'Post was successfully created.' }
        format.json { render json: @post, status: :created, location: @post }
      else
        format.html { render action: "new" }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    end
  end

此外,其他提到此错误的帖子似乎在主机声明/URL/URI 和生产环境文件中的怪异配置方面存在问题。我似乎没有这些问题,而且我似乎无法确定这是我的应用程序的问题还是 Heroku 的主机配置问题。我倾向于相信这是我的错误。

我一直在努力解决这个问题,但没有运气。任何帮助表示赞赏!

4

1 回答 1

0

邮件是否在 post#save 上发送?ActionMailer 应配置为在 Cedar 堆栈上手动使用 sendgrid:

https://devcenter.heroku.com/articles/sendgrid#actionmailer

于 2013-04-11T04:04:46.567 回答