我创建了一个人们可以订阅服务的网站。
目前,#edit用户可以自己编辑密码等信息。
但是,我希望管理员能够访问编辑页面,以便能够编辑expiry_date
之类的内容。显然,用户自己无法编辑自己的订阅到期日期,因此我想将此限制仅限于管理员。我正在考虑使用<%= if current_user.admin? %>
之类的东西并将有效期限表格字段放入其中就足够了,但我错了吗?
答案 0 :(得分:1)
不,你是对的。为简化起见,仅当current_user
为admin
时才显示表单字段。
在您admin?
中创建方法application_helper
。
def admin?
current_user.admin?
end
然后在您的表单中添加
<% if admin? %>
<!-- display the field -->
<% end %>
但是,如果您遇到许多操作只需要管理员查看的情况,我建议您为namespace
创建单独的admins
。
有关详情,请参阅http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing