J'ai défini une fonction appelée is_logged_in?
dans une bibliothèque définie par l'utilisateur et stockée dans le répertoire/lib, mais lorsque J'essaie de l'utiliser dans une de mes vues (dans ce cas, une vue _menu.html.erb) J'ai une "méthode non définie` is_logged_in? " pour # "erreur. J'avais supposé que si la méthode était disponible dans le répertoire/lib, elle serait accessible via l'application?Ruby on Rails - accès aux fonctions lib définies par l'utilisateur dans /lib/login_system.rb à partir de app/views/layouts/_menu.rhtml
mon fichier login_system.rb est la suivante:
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
et mon fichier _menu.html.erb est la suivante:
<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>
point Quelqu'un peut-il où je l'ai mal tourné?
Bernard
Woops, le fichier _menu est en fait un _menu.rhtml - NOT _menu.html.erb tel que spécifié ci-dessus. Vous ne savez pas si cela fait une différence? – mrbernz
J'ai juste compris ... c'était une erreur de syntaxe STUPID dans mon fichier login_system.rb qui l'a fait échouer. J'ai oublié le? dans la déclaration suivante ... DEF self.included (base) base.send: helper_method,: is_logged_in,: logged_in_user fin nécessaire pour changer de def self.included (base) base.send: helper_method ,: is_logged_in ?,: logged_in_user end Gggrrr .... – mrbernz