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