2010-08-10 3 views
0

Dans Rails, comment appeler un formulaire d'un autre modèle dans une disposition donnée? J'ai un formulaire de connexion que je veux mettre dans l'en-tête de chaque page. J'ai créé un partiel avec ce qui suit:Comment appelez-vous un modèle partiel ou différent dans un modèle/en-tête

<% form_for(@user_session) do |f| %> 

    <p> 
    <%= f.label :username %><br /> 
    <%= f.text_field :username, :class=>'' %> 
    </p> 
    <p> 
    <%= f.label :password %><br /> 
    <%= f.password_field :password %> 
    </p> 

    <%= f.check_box :remember_me %><%= f.label :remember_me %><br /> 
    <br /> 

    <p> 
    <%= f.submit 'Login' %> 
    </p> 
<% end %> 

puis essayé d'appeler cette partie dans mon en-tête et cela ne semble pas fonctionner.

<%= render :partial => 'user_sessions/login' %> 

Je reçois une erreur "id appelé pour zéro"

+2

Pouvez-vous nous dire le chemin de ce formulaire de connexion situé dans 'views'? –

+0

/views/user_sessions/_login.html.erb –

Répondre

0

obtenu la réponse de jmesserer plus à railsforum, juste besoin de changer:

<% form_for(@user_session) do |f| %> 

à

<% form_for UserSession.new do |f| %> 
0

Pourquoi ne pas simplement <%= render @user_session %>?

1
<%= render :partial=> 'user_sessions/login' :layout => false%> 

Utilisez cette

Je pense que vous enregistrez votre partie avec '_login.rhtml' comme?

+0

@ sachinrathore11: Vrai s'il a inclus une mise en page qui vérifie l'existence d'un utilisateur connecté! Bonne réponse. –

+0

même erreur que ci-dessus –

0

La variable @user_session est-elle configurée dans toutes les actions de votre contrôleur?

+0

Je crois que ... Je suis le http://github.com/binarylogic/authlogic_example, ce que je veux faire est d'avoir un formulaire de connexion dans l'en-tête de chaque page si l'utilisateur n'est pas connecté. –

Questions connexes