Rails: ActionController::InvalidAuthenticityToken 添加图片时

Rails: ActionController::InvalidAuthenticityToken when adding a Image

我是 Ruby-on-rails 的新手,我目前正在从事一个让用户登录以添加、创建更新删除 Marvel 角色的项目。每个角色都有名字、描述、起源、联盟和形象。 我使用 Carrierwave 进行文件上传。

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

每次尝试用图像创建角色时都会出现以下错误。当我不添加图像时一切正常: ActionController::InvalidAuthenticityToken

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

我正在使用 Rails 4.2.6。 我尝试添加 gem 遥控部件,但它没有解决我的问题。

创建。js.erb代码:

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

在控制器中创建动作:

 def create
@character = Character.new(character_params)

respond_to do |format|
  if @character.save
    format.html { redirect_to @character, notice: 'Character was successfully created.' }
    format.json { render :show, status: :created, location: @character }
    format.js
  else
    format.html { render :new }
    format.json { render json: @character.errors, status: :unprocessable_entity }

  end
end

结束

希望我能提供足够的信息,在此先感谢!

编辑:
这是我在 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 %>
  skip_before_action :verify_authenticity_token

将其放入您的控制器