这个问题可能很愚蠢,但我想创建一个带有rails的博客,所以只有我作为管理员才能发布文章,其他人可以评论文章,但他们不需要创建一个帐户来评论。
所以基本上如何制作它只有我有一个用户/帐户和该用户我可以在我登录时发布文章。 我想把登录操作与一个"秘密"路线例如/ blablalogin。
答案 0 :(得分:1)
您可以为博客创建单独的控制器,还可以创建用户访问级别。现在,您可以将用户添加到可以管理Blog控制器的特殊角色。
要创建访问级别,您可以将设计与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
仅使用PostsController
和index
操作创建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要以铁路方式为单个帖子创建评论。