Может кто-нибудь указать, почему эти строки кода для аутентификации не работают? - PullRequest
1 голос
/ 23 августа 2011

Не уверен, что не так. Я попытался удалить пробел между <и%, но приложение не запустилось. </p>

< % if logged_in? %>  
  Welcome < %= current_user.username %>! Not you?  
  < %= link_to "Log out", logout_path %>  
< % else %>  
  < %= link_to "Sign up", signup_path %> or  
  < %= link_to "log in", login_path %>.  
< % end %>  

Я получаю ошибку:

NoMethodError in Posts#index undefined method `logged_in?' for #<#<Class:0x00000101ab0250>:0x00000101aab0c0> 

enter image description here

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Вы имели в виду:

 <% if current_user.logged_in? %> 

Ваш текущий фрагмент кода попытается использовать logged_in?помощник, который, я думаю, не то, что вы хотите.

0 голосов
/ 23 августа 2011

Если вы используете "restful_authentication", попробуйте добавить include AuthenticatedSystem, как показано ниже

#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  include AuthenticatedSystem
  .....

logged_in? - это защищенный метод внутри модуля AuthenticatedSystem

module AuthenticatedSystem
  protected
    # Returns true or false if the <%= file_name %> is logged in.
    # Preloads @current_<%= file_name %> with the <%= file_name %> model if they're logged in.
    def logged_in?
      !!current_<%= file_name %>
    end
    ......

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...