我创建了一个包含迁移t.boolean :published, :default =>false
现在我不知道如何在默认情况下将此博文发布为取消发布,只有管理员可以发布它。授权部分可以用cancan完成,模型和控制器怎么样?
这是我目前的代码: 模型/ 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
controller / blog_controller.rb#我正在使用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
任何想法的人?或者是一个有用的链接?谢谢!
答案 0 :(得分:0)
我不确定我是否按照你的意愿,如果你正在使用CanCan,那么你的authorizations.rb文件应该包含管理员用户可以做什么,以及普通用户可以做什么。
请参阅https://github.com/ryanb/cancan/wiki/Defining-Abilities
取决于您用于身份验证的内容,但如果它类似于内置帮助程序的Devise,您还可以使用before_filter :authenticate_admin!, :only => [:edit, :update]
来测试并确保当前用户是管理员。 (我建议使用以下内容列入白名单:除了代替:仅限)。