如何阻止一个特定用户在Ruby on Rails中删除他的帐户?

时间:2013-06-13 15:21:53

标签: ruby-on-rails ruby-on-rails-3

我在/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 %>

1 个答案:

答案 0 :(得分:1)

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

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

model User
  ...

  def can_delete_account?
    id != 223  # ugly hack
  end

end