【发布时间】:2014-02-24 21:22:26
【问题描述】:
我正在尝试建立一个简单的网站,用户可以在其中撰写文章,但需要管理员批准才能显示在网站上。此外,用户创建文章后,文章不会立即发送给管理员。用户首先需要点击文章属性上的“发送”按钮。
我有这个模型:
create_table "articles", force: true do |t|
t.string "title"
t.text "content"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "published", default: false
t.boolean "sent", default: false
end
用户创建文章后,published 和 sent 为 false。在文章属性中,用户有“发送”按钮。在他单击该按钮后,published 仍然为 false,但 sent 现在为 true。现在在管理员控制面板中,管理员看到了新文章,当他点击“发布”按钮时,published 和 sent 现在都是 true。上传文章的用户可以删除文章并将published设置为false。
我正在执行的所有操作例如:
<%= link_to 'Undo sent', article_path(article, :article => {:sent => false}), :method => :put %>
问题是我不知道如何限制访问。普通用户可以将列sent 更改为true 和false,但列published 他只能更改为false。只有管理员可以将列 published 更改为 true 和 false。
我怎样才能在我的控制器内完成它以确保它的安全?所有用户都有我可以访问的角色列。谢谢。
【问题讨论】:
-
使用 CanCan 获取权限 ;)
-
@MrYoshiji,我已经设置好了一切。我不需要 CanCan :) 这可能只是一个小问题。
标签: ruby-on-rails activerecord ruby-on-rails-4