我有一个使用AJAX for CRUD的控制器,但每当我点击我的一个远程链接(例如删除)时,我看到rails服务器已经决定将我注销并重定向我.检查服务器日志表明它无法验证CSRF真实性.如何在我的请求中包含CSRF令牌?
运行: - Rails 3.1 - 设计1.4.4 - jquery-rails 1.0.13
相关的控制器行动:
def destroy
@article = Article.find(params[:id])
if @article.destroy
flash[:notice] = "Article deleted."
respond_to do |format|
format.html{redirect_to articles_path}
format.js{}
end
else
flash[:error] = "Try Again."
redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)
布局/ application.html.erb
<head>
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap-1.1.1.min.css>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag :defaults %>
<script type="text/javascript">jQuery.ajaxSetup({ beforeSend: function (xhr) { xhr.setRequestHeader("Accept", "text/javascript"); } });</script>
<%= csrf_meta_tag %>
<%= yield(:head) %>
</head>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我已经使用新的DOCKER_BUILDKIT=1构建器构建了一个图像,特别是使用--mount=cache. 几次构建我的图像后,我注意到缓存使用量已经超过 3Gb,我想查看缓存中对象的大小,以确定是因为我缓存了太多东西还是只有多个正在存储的版本。但是,docker cli 没有任何用于探索缓存 afaict 的机制。
像许多其他用户一样,我有'el'和事件的问题.在我的情况下,我已经测试了多个解决方案,包括使用默认的el(只是'')设置tagName,使用jQuery选择器将el设置为选择器,并为DOM做好准备.这些解决方案中的每一个都无法绑定事件,除了默认的el和tagName在生成html时都失败了.相关代码查看
$ ->
class Aggregator.Views.Streams.StreamView extends Backbone.View
template:JST["backbone/templates/stream"]
el: $('.item')
events:
"click div" : "testing"
initialize: (model)->
console.log @el
_.bindAll this , 'render'
@model.bind 'change', @render
@model.view = @
@render()
@delegateEvents()
render: ->
$(@el).html "test"
console.log @el
@
testing: ->
alert "EVENT"
#@model.clear()
Run Code Online (Sandbox Code Playgroud)
调用视图的函数(从另一个视图中提取)
view = new Aggregator.Views.Streams.StreamView({model: stream})
console.log view.el
$(@el).append view.render().el
Run Code Online (Sandbox Code Playgroud)
我有点困惑,我已设置el但它要么不创建,要么它不绑定事件.我已经尝试等待DOM加载并将el传递给构造函数但没有成功.对我最明显的错误的任何帮助将不胜感激.