Re: [Rails] add user_id to new record

190 views
Skip to first unread message

Walter Lee Davis

unread,
Mar 2, 2020, 7:47:37 AM3/2/20
to rubyonra...@googlegroups.com
In your Controller's #new and #create methods, scope the post to be owned by the current_user (or whatever other scheme you may be using for your logged-in-user management).

def new
@post = current_user.posts.build
end

def create
@post = current_user.posts.create(post_params)
...
end

Now your relationship will take care of getting the correct user in there automatically, whether it's in-memory or in persistence.

NB: If this doesn't appear to work, then you haven't built your relationships correctly, and you need to fix that before proceeding.

Walter

> On Mar 2, 2020, at 12:59 AM, fugee ohu <fuge...@gmail.com> wrote:
>
> How do i add user_id to a new record without placing it in a form as a hidden field? I tried adding in the controller's create action just before `if @post.save?` but that didn't cause new records created to have a value for user_id Maybe it was because I'm using a nested form and this record is a child record
>
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3903125c-1f66-4ed3-89dd-b73620d797f2%40googlegroups.com.

fugee ohu

unread,
Mar 10, 2020, 11:50:44 AM3/10/20
to Ruby on Rails: Talk


On Monday, March 2, 2020 at 7:47:37 AM UTC-5, Walter Lee Davis wrote:
In your Controller's #new and #create methods, scope the post to be owned by the current_user (or whatever other scheme you may be using for your logged-in-user management).

def new
  @post = current_user.posts.build
end

def create
  @post = current_user.posts.create(post_params)
  ...
end

Now your relationship will take care of getting the correct user in there automatically, whether it's in-memory or in persistence.

NB: If this doesn't appear to work, then you haven't built your relationships correctly, and you need to fix that before proceeding.

Walter

> On Mar 2, 2020, at 12:59 AM, fugee ohu <fuge...@gmail.com> wrote:
>
> How do i add user_id to a new record without placing it in a form as a hidden field? I tried adding in the controller's create action just before `if @post.save?` but that didn't cause new records created to have a value for user_id Maybe it was because I'm using a nested form and this record is a child record
>
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rubyonra...@googlegroups.com.

Ok thanks And what about passing some params to build?
  @post = current_user.posts.buil(artist_id: @artist.id, tour_id: @tour.id)
Reply all
Reply to author
Forward
0 new messages