is_logged_in?
이라는 함수를/lib 디렉토리에 저장된 사용자 정의 라이브러리에 정의했습니다. 내보기 중 하나 (이 경우에는 _menu.html.erb보기)에서 사용하려고합니다. "정의되지 않은 메서드 인 is_logged_in"이 나타납니다. # "오류가 발생했습니다. 그 방법이/lib 디렉토리에서 사용 가능하다면 응용 프로그램을 통해 액세스 할 수 있다고 가정했습니다.Ruby on Rails - app/views/layouts/_menu.rhtml에서 /lib/login_system.rb의 사용자 정의 lib 함수에 액세스하십시오.
module LoginSystem
protected
def is_logged_in?
@logged_in_user = User.find(session[:user]) if session[:user]
end
def logged_in_user
return @logged_in_user if is_logged_in?
end
def logged_in_user=(user)
if !user.nil?
session[:user] = user.id
@logged_in_user = user
end
end
def self.included(base)
base.send :helper_method, :is_logged_in, :logged_in_user
end
end
를 다음과 같이 내 _menu.html.erb 파일은 다음과 같습니다 :
<ul>
<li><%= link_to 'Home', '/' %></li>
<li><%= link_to 'Edit Page', pages_path %></li>
<li><hr size = "1" width = "90%" aligh = "left" /></li>
<% if is_logged_in? %>
<li> Logged in as: <i><%= logged_in_user.username%> </i></li>
<li><%= link_to 'Logout',{:controller => 'account', :action => 'logout'}, :method => :post%> </li>
<% else %>
<li><%= link_to 'Signup', :controller => 'users', :action => 'new' %> </li>
<li><%= link_to 'Login', :controller => 'account', :action => 'login' %></li>
<% end %>
</ul>
수있는 사람 점은 내가 잘못 갔어요 경우 다음과 같이
내 login_system.rb 파일은?
버나드
Woops의 _menu 파일은 실제로 위에 지정된대로 _menu.rhtml - NOT _menu.html.erb입니다. 이것이 차이를 만들지 확실하지 않은가요? – mrbernz
그냥 알아 냈어 ... 실패한 login_system.rb 파일에 STUPID 구문 오류가 있습니다. 나는 잊었다? helper_method, : is_logged_in, 다음 문 ... 데프 self.included (기본) base.send에 LOGGED_IN_USER 끝 필요한 는 데프 self.included (기본) base.send로 변경 : helper_method를 , : is_logged_in ?, : logged_in_user end Gggrrr .... – mrbernz