创建一个只有我可以发布的博客 - Rails?

时间:2015-08-28 12:04:54

标签: ruby-on-rails authorization blogs

这个问题可能很愚蠢,但我想创建一个带有rails的博客,所以只有我作为管理员才能发布文章,其他人可以评论文章,但他们不需要创建一个帐户来评论。

所以基本上如何制作它只有我有一个用户/帐户和该用户我可以在我登录时发布文章。 我想把登录操作与一个"秘密"路线例如/ blablalogin。

2 个答案:

答案 0 :(得分:1)

您可以为博客创建单独的控制器,还可以创建用户访问级别。现在,您可以将用户添加到可以管理Blog控制器的特殊角色。

要创建访问级别,您可以将设计与cancan一起使用。

  

Devise

     

Cancan

<强>更新

此外,您可以使用活跃的管理员添加此项,如Gaurav Gupta所说。

答案 1 :(得分:0)

我愿意......

  • 创建一个运行Post

    rails g model post title:string body:text模型
    class Post < ActiveRecord::Base
      belongs_to :admin_user
      has_many :comments, dependent: :destroy
      accepts_nested_attributes_for :comments, reject_if: :all_blank, allow_destroy: true
    end
    
  • 为管理站点安装ActiveAdmin。您可以使用Active Admin轻松创建博客CRUD。

  • 创建User模型。使用devise,您可以解决&#34;登录部分&#34;对于用户。
      

    如果没有必要登录写评论,你就不需要设计

  • 创建Comment模型。 rails g model post title:string body:text user:references post:references

    class Comment < ActiveRecord::Base
      belongs_to :user # you won't need this relation if users don't need to be logged in.
      belongs_to :post
    end
    
  • 仅使用PostsControllerindex操作创建show

  • 仅使用CommentsController操作创建create。 不要忘记允许的参数:

    def permitted_params
      params.require(:post).permit(comments_attributes: [:title, :body])
    end
    
  • 路线:

    resources :posts, only: [:index, :show] do
      resources :comments, only: [:create]  
    end
    

    你将拥有:

    • GET /posts包含帖子列表的视图
    • GET /posts/:id查看具体帖子。在这里,您需要一个表单来输入指向POST /posts/:id/comments
    • 的评论
    • POST /posts/:id/comments端点,用于保存单个帖子的评论。
  • 您应该知道nested attributes要以铁路方式为单个帖子创建评论。