Remotipart正在将行动从PUT改为GET

时间:2013-05-22 18:22:15

标签: ruby-on-rails-3 remotipart

我有一个story模型,可以作为许多posts的包装器。 Posts可能有照片附件,我使用remotipart和paperclip来处理图片上传和处理。

当用户POSTSpost时,此功能完全正常。我想允许post作者编辑他们的帖子/上传图片;这就是问题发生的地方。

当用户点击edit按钮时,我会更改用户创建帖子时最初使用的表单,以便可以使用相同的表单编辑帖子。作为我改变的一部分,我修改了<form>标签:

<form id="new_post_for_story_241" class="new_post" accept_charset="UTF-8" action="/stories/241/posts.json" data-remote="true" enctype="multipart/form-data" method="post" novalidate="novalidate" target="">

<form id="new_post_for_story_241" class="new_post" accept_charset="UTF-8" action="/stories/241/posts/287.json" data-remote="true" enctype="multipart/form-data" method="put" novalidate="novalidate" target="">

同样,如果用户不包含图像,这适用于PUT编辑。但是,如果表单包含新图像,它会中断。无论出于何种原因,如果用户想要将新图像作为更改的表单的一部分上传,则表单将通过GET操作提交。触发这个:

Started GET "/stories/241/posts/287.json?post%5Bphoto%5D=champcourse15thgreen.jpg&post%5Bcontents%5D=another+pic%0D%0A&remotipart_submitted=true&X-Requested-With=IFrame&X-Http-Accept=text%2Fjavascript%2C+application%2Fjavascript%2C+application%2Fecmascript%2C+application%2Fx-ecmascript%2C+*%2F*%3B+q%3D0.01" for 127.0.0.1 at 2013-05-22 10:54:50 -0700

ActionController::RoutingError (No route matches [GET] "/stories/241/posts/287.json"):

任何人都知道为什么会这样,更重要的是,有一个解决方法吗?

1 个答案:

答案 0 :(得分:0)

你可能有一个旧版本的remotipart依赖jquery-iframe-transport,它有不正确的代码来设置表单的方法(它是硬编码而不是复制原始表单的方法)。它已经修复了。