Authlogic gem/Rails를 사용하는 동안 뭔가 빠져 있다고 생각합니다. 무대를 설정하려면 여러 사용자가 있고 각 사용자는 게시물과 댓글을 만들 수 있습니다. 게시물이나 댓글을 표시 할 때 수정 또는 삭제할 수있는 옵션을 작성한 사용자에게 제공하고 싶습니다.Authlogic 현재 사용자 질문 - 관리자 링크 숨기기
다음 코드를 사용하여 사용자가 로그인했거나 로그인했지만 실제 사용자에게만이 링크를 표시하는 방법을 찾지 못하는 경우에 따라 요소를 숨기고 표시합니다. 에 기록되지 않은 사용자입니다. 여기에
<% if current_user %>
<%= link_to 'Edit', edit_question_path(question) %> |
<%= link_to 'Destroy', question, :confirm => 'Are you sure?', :method => :delete %>
<% else %>
<p>nothing to see here</p>
<% end %>
내가 여기서 뭔가를 변경해야하는 경우 응용 프로그램 컨트롤러에있는 CURRENT_USER의 데프이다.
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
protect_from_forgery # See ActionController::RequestForgeryProtection for details#
helper_method :current_user
private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
end
좋아, 내가 무슨 일이 일어나고 있는지 이해하기를 원하는 것처럼 헤닝 코흐에서 이지스 솔루션으로 이동하기 전에 위를 구현하고있다. 응용 프로그램 컨트롤러 코드를 넣었지만 현재 def가 삭제되지 않았습니다. SitesController에서 나는 두 번째 코드 블록의 require_owner 라인을 넣었다. 나는 <% if @require_owner %> 래퍼를 편집 및 파괴 링크 주위에 넣었다. 그들은 성공적으로 링크를 숨기지 만 로그인 할 때 소유자에게 보여주지 않습니다. – bgadoci
필터 기능으로 require_owner를 사용해야합니다. 당신의 관점에서'current_user_is_owner? '를 사용하십시오. 코드를 업데이트했습니다. –
당신은 일종의 마법사입니다. 다시 한번 감사드립니다. – bgadoci