Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 添加映像时Rails:ActionController::InvalidAuthenticationToken_Ruby On Rails_Ruby_Ruby On Rails 4.2 - Fatal编程技术网

Ruby on rails 添加映像时Rails:ActionController::InvalidAuthenticationToken

Ruby on rails 添加映像时Rails:ActionController::InvalidAuthenticationToken,ruby-on-rails,ruby,ruby-on-rails-4.2,Ruby On Rails,Ruby,Ruby On Rails 4.2,我是RubyonRails新手,目前正在从事一个项目,该项目允许用户登录添加、创建、更新和删除一个Marvel角色。每个角色都有名称、描述、来源、联盟和图像。 我用Carrierwave上传文件 我使用scaffold命令,一切正常,直到我决定能够使用.js.erb文件在同一页面上创建和更新我的角色,而不必将用户重定向到两个不同的页面进行创建和更新 每次我尝试创建一个带有图像的角色时,都会出现以下错误。当我不添加图像时,一切正常: ActionController::InvalidAuthent

我是RubyonRails新手,目前正在从事一个项目,该项目允许用户登录添加、创建、更新和删除一个Marvel角色。每个角色都有名称、描述、来源、联盟和图像。 我用Carrierwave上传文件

我使用scaffold命令,一切正常,直到我决定能够使用.js.erb文件在同一页面上创建和更新我的角色,而不必将用户重定向到两个不同的页面进行创建和更新

每次我尝试创建一个带有图像的角色时,都会出现以下错误。当我不添加图像时,一切正常: ActionController::InvalidAuthenticationToken

我知道论坛上已经提出了一些不同的类似问题,但我似乎找不到问题的答案

我使用的是Rails 4.2.6。 我试图添加gem remotipart,但它没有解决我的问题

create.js.erb代码:

$("#characters").append("<%= escape_javascript(render @character)%>");
结束

我希望我提供足够的信息,提前感谢

编辑:
下面是我在form.html.erb中的代码,允许用户添加图像:

<div class="field">
    <%= f.label :image %>
    <%= f.file_field :image %>
    <% if f.object.image %>
        <%= image_tag f.object.image.url %>
        <!--<%= f.label :remove_image %>
    <%= f.check_box :remove_image %> -->
    <% end %>
  </div>

我认为Rails表单现在不会在表单中呈现CSRF字段:

<%= form_for @character, :remote => true, :authenticity_token => true,:multipart => true do |f| %>

..... 

<% end %>
true,:authenticity_token=>true,:multipart=>true do | f |%>
..... 

把它放在你的控制器中

你能给我们看一下包含表单的视图吗?谢谢你,工作顺利!我不敢相信有那么简单。。。你能不能进一步解释一下为什么我的程序现在需要那行代码,但以前没有它却可以正常工作?我很感激你的回答,但我不想不理解它,不知道它的影响就越过这条线。Thanksauthentity_令牌用于将参数传递给服务器时,对其进行身份验证,并且服务器知道这些参数是预期的。然而,一些gem通过该令牌使用数据无效。做这种跳过不是一个好习惯,但有时必须做,我在我的一些应用程序上做过,你只需要知道你在做什么,从长远来看,在不了解正在发生什么的情况下绕过安全系统而仅仅接受伪答案对他没有帮助。禁用门上的物理锁将非常愚蠢,似乎同样的逻辑也适用于这里。适用于Rails 5.1、remote form(simple_form)和CarrierWave而无需移除。
<%= form_for @character, :remote => true, :authenticity_token => true,:multipart => true do |f| %>

..... 

<% end %>
  skip_before_action :verify_authenticity_token