HAS_MANY BELONGS_TO noobie question


I made my authentication system using Authlogic, and I have a
current_user helper

Now, I also made a scaffold called posts, and everytime a user creates
a post using that scaffold, i want it to be assigned to that
particular user.

So i can render out the posts that ONLY that user made.

Now, the question is what to do in the forms, and what to do in the
posts controller.

Right now, I already have a has_many belongs_to relationship between
the too, but i dont know where to go next. What do i have to chnage in
the posts controller? What is my post form supposed to look like in
order for it to be associated with the current_user?

AWww ive been trying to get my mind around this, but i can’t. i need
help. really bad.

Someone please help. please!!

Hey David,

It’s really pretty easy and straightforward.
In your PostsController:

def create
@post = current_user.posts.build(params[:post])
if @post.save
# …
# …

Also in your PostsController, to list posts only from current_user:

def index
@posts = current_user.posts

If you want your show method to only look for posts from current_user:

def show
@post = current_user.posts.find(params[:id])


2010/3/27 David Z. [email protected]

horrah! thanks so much, it was the @post =
current_user.posts.build(params[:post]) that i was stuck on

And now, i get it. and now it works. ur a life saver, thanks so
much !!!

bump… :slight_smile: i really need help guys.

Oh, thanks that relaly helped, but one more thing-

If i assigned posts to anotherposts, through a has_many :anotherposts
and belongs_to :posts relationship, how would i do @post =
current_user.posts.build(params[:post]) in this situation? Because i
dont have the current_user helper anymore, because we are not dealing
with users, but with the post that i want to create anotherposts ontop

so basically instead of the current_user helper, i want to use the
post that the anotherposts is being created on.

Do you understand? Hit me with more questions if you want :slight_smile:

I really need help, this shouldn’t be difficult at all. Just a minor
switch, that i can’t get my mind around. Hope you can help! thanks!!