【问题标题】:Devise issue, "update" method is now deleting my user account设计问题,“更新”方法现在正在删除我的用户帐户
【发布时间】:2014-07-21 21:26:50
【问题描述】:

我在使用 Devise & Simple_Form 的应用程序中遇到了最奇怪的问题。我的所有功能都运行良好,现在当我“更新”我的帐户时,它只是取消了该帐户。我没有更改控制器甚至编辑表单中的任何内容。我发现这个问题在推到 Heroku 之后逐渐蔓延,并注意到现在开发和生产方面的变化,所以我不确定是什么导致了这个问题。

解决方案:在我完全自动生成的设计表单中,缺少</div>,导致我的更新和取消功能混在一起。由于设计表单格式的方式,在所有代码中都不清楚这个标签没有关闭!棘手的问题。

有没有办法覆盖设计默认值来修复这个奇怪的错误?

 <%= form_for(resource, 
   as: resource_name, 
   url: registration_path(resource_name),  
   html: { method: :put }) do |f| %>
 <%= devise_error_messages! %>

 <div>
   <%= f.label :profile_photo %><br />
   <%= f.file_field :profile_photo, label: "Image" %>
   <%= image_tag (current_owner.profile_photo.url(:thumb)) %>
 **</div>**

 <div>
   <%= f.submit "Update" %>
 </div>
 <% end %>

 <h3>Cancel my account</h3>

 <p>Unhappy? <%= button_to "Cancel my account", registration_path(resource_name), 
  data: { confirm: "Are you sure?" }, method: :delete %></p>

【问题讨论】:

  • 我遇到了同样的问题,这很难调试。感谢发布解决方案的朋友! =) 您应该将解决方案作为答案发布,而不是作为问题编辑。
  • 如果是生成器的问题,您应该将问题报告给github.com/plataformatec/devise/issues
  • 感谢您的帖子。关于为什么设计“更新”按钮删除用户的问题,我被困了很久 - 原来这是我自己的错误前端代码!我通过整理 div 标签并将 form_for 块放在正确的位置来修复它。 (起初我以为这是一个数据库的东西,幸运的是它不是!:)

标签: ruby-on-rails heroku devise simple-form


【解决方案1】:

将“取消我的帐户”按钮放在表单之外。

【讨论】:

  • “取消我的帐户”按钮实际上不在“form_for”块中,它就在页面末尾的表单之外。我不知道路由是如何切换的,因为它是在设计中自动设置的。有没有办法使用&lt;%= f.submit "Update" %&gt; 行显式设置方法/路由,以便正确更新?
【解决方案2】:

非常棘手!我花了 1 个小时试图解决这个问题,但它缺少 &lt;/div&gt;! 感谢您提出并回答这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2011-06-17
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2018-10-09
    相关资源
    最近更新 更多