【发布时间】: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