当我希望它使用POST时,Rails正在使用PATCH

时间:2016-03-29 05:21:13

标签: ruby-on-rails rest

我正在申请评估学生的工作。当学生创建新帖子时,Rails大部分时间使用POST动词,生活也很好。但是如果工作很晚并且Post已被评分为缺失,则Rails尝试使用PATCH动词而不是POST创建它(使用相同的路径)并创建Post失败。

我在Heroku的日志中看到的错误消息是:

ActionController::RoutingError (No route matches [PATCH] "/users/55/posts”)

据我所知,当Rails决定使用PATCH动词时,两种情况之间存在分数实例。分数模型包括以下这一行:

  belongs_to :post, touch: true

这可能是造成行为差异的原因吗?我认为可能,但是在创建缺失作业的分数时没有创建Post对象(我通过向Post.where(user: score.user)键入bin/rails c来检查这一点的方式。结果是一个空数组。

有没有办法强制Rails在想要进行PATCH时进行POST?

1 个答案:

答案 0 :(得分:1)

如果没有更多信息,很难诊断出来。您可以使用form_for @user, method: :post do |f|明确指示Rails使用POST方法。