0
我正在使用Devise创建可以评论的用户。当他登录时一切正常。但是,当访客用户(未登录)尝试访问该页面时,评论不会被显示。我试图直接渲染“_comment.html.erb”,但是这是一个错误。当用户注销时使用The_Comments显示注释gem
基本上,当用户没有登录时,他应该能够查看评论。当他登录时,他应该能够发表新评论。
有没有快速解决这个问题?
我正在使用Devise创建可以评论的用户。当他登录时一切正常。但是,当访客用户(未登录)尝试访问该页面时,评论不会被显示。我试图直接渲染“_comment.html.erb”,但是这是一个错误。当用户注销时使用The_Comments显示注释gem
基本上,当用户没有登录时,他应该能够查看评论。当他登录时,他应该能够发表新评论。
有没有快速解决这个问题?
设计将创建一些助手在您的控制器和视图中使用。要设置用户认证控制器,只需添加这before_action(假设你的色器件型号为User
):
before_action :authenticate_user! # Which will ask for authenticate user to login
所以,你可以在您的评论的控制器写这样
class CommentsController < ApplicationController
before_action :authenticate_user!, :except => [:show] # which will applied authentication except defined action
.....
.....
end
对于more details你可以看Customizing Devise RailsCast Ryan Bates
而在你的show.html.erb
页面,你可以把条件,如果用户登录后,新评论的表格应该显示为
<% if user_signed_in? %>
<%= render "comments/form" %> # new comment's form
<% end %>
您可以在控制器中提到操作。与authenticate_user过滤器类似,但[show] – 2014-10-09 13:01:24
除外如果您使用授权,则应该查看授予访客用户访问权限的方式。 – vikram 2014-10-09 13:14:14