¿Cómo hacer que un blog solo pueda ser publicado por un administrador?

He creado un modelo de blog con migración. t.boolean :published, :default =>false

y ahora no sé cómo hacer que esta publicación de blog se anule de manera predeterminada y solo el administrador pueda publicarla. La parte de autorización se puede hacer con cancan, ¿qué tal el modelo y el controlador?

Este es mi código actual: modelos / 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 # Estoy usando el complemento make_resourceful para manejar anidado y polimórfico

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

¿Alguna idea chicos? o tal vez un enlace útil? ¡Gracias!

preguntado el 16 de mayo de 11 a las 17:05

1 Respuestas

No estoy seguro de estar siguiendo lo que desea, si está usando CanCan, entonces su archivo Authorizations.rb debe contener lo que pueden hacer los usuarios administradores y lo que pueden hacer los usuarios habituales.

Vea https://github.com/ryanb/cancan/wiki/Defining-Abilities

Dependiendo de lo que esté usando para la autenticación, pero si es algo como Devise con ayudantes integrados, también puede usar before_filter :authenticate_admin!, :only => [:edit, :update] para probar y asegurarse de que el usuario actual sea un administrador. (Recomiendo incluir en la lista blanca: excepto en lugar de: solo).

contestado el 16 de mayo de 11 a las 22:05

gracias por la respuesta ... entonces, ¿cómo mostrar solo el: publicado con verdadero para que se muestre? ¿Qué debo escribir en def index? - Iqbal

Creo que he encontrado el complemento que se adapta a mis necesidades. github.com/mysmallidea/requires-approval - Iqbal

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.