2011-08-17 3 views
0

J'utilise authlogic pour que les utilisateurs se connectent et une fois qu'ils le font, je voudrais qu'ils soient en mesure d'ajouter des messages. Pour une raison quelconque, je continue à obtenir "Impossible de trouver l'utilisateur sans ID". Voici mon code:authlogic et posts pour current_user

posts controller 
def create 
    @user = User.find(params[:user_id]) 
    @post = @user.posts.create(params[:post]) 
    redirect_to current_user_path(@current_user) 
end 

show page 
    <% @user.posts.each do |post| %> 
<tr> 
    <td><%= post.postName %></td> 
    <td><%= post.body %></td> 
    <td><%= link_to 'Show', post %></td> 
    <td><%= link_to 'Edit', edit_post_path(post) %></td> 
    <td><%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %>  </td> 
</tr> 
<% end %> 
</table> 

<br /> 

<h2>Add a Post:</h2> 
<%= form_for([@current_user, @user.posts.build]) do |f| %> 

    <div class="field"> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

Je sais qu'il a quelque chose à voir avec l'utilisateur actuel, mais je ne peux pas obtenir ce travail! Toute aide est grandement appréciée!

+0

Normallement, authlogic utilise "current_user" et non "@current_user" ... avez-vous personnalisé pour être une variable d'instance (plutôt qu'un appel de méthode)? –

+0

current_user renvoie une erreur. Il semble que ce soit le routage vers mon modèle de messages au lieu d'utiliser l'ID utilisateur dans l'URL – user893447

Répondre

0

D'abord, vous devez utiliser current_user pas @current_user

Deuxièmement, vous faites @user = User.find(params[:user_id]) mais je ne comprends pas pourquoi vous vous attendez à quelque chose comme :user_id dans votre params. C'est pourquoi vous obtenez cette erreur "Impossible de trouver l'utilisateur sans ID".

Questions connexes