簡體   English   中英

Rails 4中的ActionController :: InvalidAuthenticityToken

[英]ActionController::InvalidAuthenticityToken in rails 4

_form.html.erb

<%= simple_form_for(@activity,:remote=>true, html: {multipart: true}) do |f| %>
    <div class="form-inputs">
      <%= f.input :name %>

    <%= f.input :logo%>
    </div>

    <div class="form-actions">
      <%= f.button :submit %>
    </div>
<% end %>

create.js.erb

$(document).ready(function(){
<%if @activity.save %>
$('#divShow').html("<%= j (render 'activities/index') %>");
$('#myModal').modal('hide');
$('#notice').html("Activities is successfully created.").show();
<%else%>
$('.modal-body').html("<%= j (render 'activities/form') %>");
<%end%>
});

activities_controller

def create
@activity = Activity.new(activity_params)
@activity.save
end

logs

由ActivitiesController#create處理為HTML

參數:{“ utf8” =>“✓”,“ activity” => {“ name” =>“ sds”,“ logo” =>#,@ original_filename =“ 1241112.png”,@ content_type =“ image / png “,@ headers =”內容處置:表單數據;名稱= \\“ activity [徽標] \\”;文件名= \\“ 1241112.png \\” \\ r \\ n內容類型:image / png \\ r \\ n“> },“ commit” =>“創建活動”}

無法驗證CSRF令牌的真實性

1毫秒內完成422個不可處理實體

ActionController的:: InvalidAuthenticityToken

在視圖頁面中,我正在使用simple_form gem和JS進行CURD操作。 但是,我在創建新記錄時從文件upload(:logo)中出錯。謝謝,請幫幫我。

要在activity_controller.rb中解決此問題,請將其放在頂部:

 skip_before_filter :verify_authenticity_token, :only => :create

另外,您還必須定義模板,因此視圖將是:

def create
  @activity = Activity.new(activity_params)
  respond_to do |format|
    if @activity.save(activity_params)
      format.js {}  
    else
      format.js {}  
    end
  end
end

我正在使用gem "remotipart"解決此問題:

1.將gem "remotipart"到您的gem "remotipart"文件中。

2.運行bundle exec rails g remotipart:install

3.將<%= javascript_include_tag :defaults %>到布局頁面。

//= require jquery.remotipart//= require jquery.remotipartapplication.js文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM