我创建了一个带有迁移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 列入白名单)。