在_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 as HTML
参数:{“utf8”=&gt;“✓”,“activity”=&gt; {“name”=&gt;“sds”, “标志”=&GT;#, @ original_filename =“1241112.png”,@ content_type =“image / png”, @ headers =“Content-Disposition:form-data; name = \”activity [logo] \“; filename = \“1241112.png \”\ r \ nConContent-Type:image / png \ r \ n“&gt;}, “commit”=&gt;“创建活动”}
无法验证CSRF令牌真实性
在1毫秒内完成422个不可处理的实体
的ActionController :: InvalidAuthenticityToken
在视图页面中,我使用了simple_form
gem和CURD操作。但是,我在创建新记录时从文件上传(:徽标)中收到错误。请帮助我,谢谢。
答案 0 :(得分:1)
要在activities_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
答案 1 :(得分:0)
我正在使用gem "remotipart"
来解决问题:
1.将gem "remotipart"
添加到您的gemfile。
2.Run bundle exec rails g remotipart:install
。
3.将<%= javascript_include_tag :defaults %>
添加到布局页面。
4.将//= require jquery.remotipart
添加到application.js
文件。