Ruby on Rails 3 - 如何制作博客只能由管理员发布



我创建了一个带有迁移t.boolean :published, :default =>false的博客模型

现在我不知道如何使这篇博文默认取消发布,只有管理员可以发布它。授权部分可以用康瞟完成,模型和控制器呢?

这是我当前的代码:models/blog.rb

class Blog < ActiveRecord::Base
  attr_accessible :title, :content, :user_id, :published
  has_many :comments, :as => :commentable
  def published?
     published
  end
  def published!
     self.published = true
  end
  def unpublished!
     self.published = false
  end
end

控制器/blog_controller.rb #I 正在使用make_resourceful插件来处理嵌套和多态

class BlogsController < ApplicationController
   make_resourceful do
   actions :all
response_for :create do
   flash[:notice] = "Successfully created article."
      redirect_to blogs_url
    end
response_for :update do
      flash[:notice] = "Successfully updated article."
      redirect_to blogs_url
    end
response_for :destroy do
      flash[:notice] = "Successfully destroyed article."
      redirect_to blogs_url
   end
 end
end

知道伙计们吗?? 或者也许是一个有用的链接?谢谢!

我不确定我是否遵循您想要的内容,如果您使用的是CanCan,那么您的授权.rb文件应该包含管理员用户可以做什么,以及普通用户可以做什么。

请参阅 https://github.com/ryanb/cancan/wiki/Defining-Abilities

根据您用于身份验证的内容,但如果它是带有内置帮助程序的 Devise 之类的东西,您还可以使用 before_filter :authenticate_admin!, :only => [:edit, :update] 来测试并确保当前用户是管理员。 (我建议使用 :except 而不是 :only 列入白名单)。

相关内容

  • 没有找到相关文章

最新更新