【发布时间】:2013-11-25 00:11:25
【问题描述】:
我有 2 个 ruby on rails 项目,一个有表格并将其发布到另一个项目。然后另一个项目应将其转换为模型、报价并保存。
我已经做了一个报价资源和一个带有 create 方法的控制器。表单的操作是其他项目/报价和方法发布。据我了解,这应该调用报价控制器中的 create 方法。
但是我收到了这个错误:
The change you wanted was rejected.
Maybe you tried to change something you didn't have access to.
有人知道是什么导致了这个错误吗?是heroku引起的还是与我的应用程序有关?我对 rails/heroku 还很陌生,所以我不确定,如果有任何帮助,我们将不胜感激。
编辑 1 经过一些研究,我似乎需要真实性令牌来匹配。但是,由于我有两个应用程序,这是如何实现的?
【问题讨论】:
-
我不知道这是否是真正的问题。但是每个 Rails 应用程序都有
secret_token,可以在initializers/secret_token.rb中找到。每当呈现表单时,都会根据应用程序的secret_token为其生成一个authenticity_token。发布表单时,应用程序会检查authenticity_token是否有效(同样基于secret_token),如果无效,则发布请求未完成,这可能是您发布表单的原因另一个应用程序! -
您在两个应用程序之间使用共享数据库吗?
-
不仅第二个应用程序有数据库-@MhdSyrwan,好吧,也许这就是问题所在,我试着弄清楚我如何使用秘密令牌-@Tamer Shlash
-
heroku logs中显示了什么?
标签: ruby-on-rails csrf-protection