0

我在 /views/devise/registrations/edit.html.erb 中有这段代码

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

这允许登录的用户删除他的帐户。现在我不希望一个 id=223 的用户拥有这个权限/链接。我怎样才能做到这一点 ?我不确定edit.html.erb文件中的以下代码是否有效(或者有更好的方法吗?)

编辑 - 好的,下面的代码正在工作,但如何通过控制器来做到这一点?

<% if current_user.id != 223 %>
<b>Cancel my account</b>
    <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.
<% end %>
4

1 回答 1

1

控制器与是否显示链接无关。但是,您可以通过检查相同的条件来禁用控制器中的删除。

无论如何,您应该为此创建至少一个模型属性。这个 id 硬编码的东西不好,所以至少隐藏它并让它不被重复。

model User
  ...

  def can_delete_account?
    id != 223  # ugly hack
  end

end
于 2013-06-13T15:33:25.510 回答