我在/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 %>
答案 0 :(得分:1)
控制器与正在显示的链接无关。但是,您可以通过检查相同的条件来禁用控制器中的删除。
无论如何,您应该为此创建至少一个模型属性。这个id硬编码不好看,所以至少隐藏它并使它不被重复。
model User
...
def can_delete_account?
id != 223 # ugly hack
end
end