我正在将系统rail2迁移到rails3,当我尝试从列表中删除项目时遇到了问题。我只是点击删除链接,然后会话被销毁,项目没有被销毁。这个问题发生在所有控制器和所有三个会话存储中。我删除了除rails和mysql2之外的gems并尝试了但结果是一样的。我清空会话商店的破坏行为,但这也发生了。顺便说一下,如果我没有使用会话,该项目就被销毁了。
视图:
<%= link_to image_tag("icons/10.png" ,:size => "20x20", :alt => "show", :border => 0, :class => "show"), admin_info_path(info) -%>
<%= link_to image_tag("icons/2.png" ,:size => "20x20", :alt => "edit", :border => 0, :class => "edit"), edit_admin_info_path(info) -%>
<%= link_to image_tag("icons/9.png" ,:size => "20x20", :alt => "delete", :border => 0, :class => "delete"), admin_info_path(info), :confirm => 'Are you sure?', :method => :delete %>
的Gemfile:
gem 'rails', '3.0.9'
gem 'mysql2', '~> 0.2.6'
gem "settingslogic", "~> 2.0.6"
gem 'jpmobile', '0.1.6'
gem "kaminari"
gem "memcache-client"
答案 0 :(得分:1)
这几乎总是request forgery protection的结果。确保您的布局的rails.js
标记内包含<%= csrf_meta_tag %>
和有效的<head>
或jquery_ujs.js
JavaScript。
<%= javascript_include_tag :defaults %>
通常会自动包含这些文件。
如果您仍遇到问题,可以随时注释掉protect_from_forgery
电话(可能在您的application_controller.rb
文件中),看看是否是导致您出现问题的原因。但出于安全考虑,我不建议永久性地禁用伪造保护。