开发者

rails attaching database entry to logged in user

开发者 https://www.devze.com 2023-03-22 01:08 出处:网络
I\'m new to rails and am done setting up my login system. However, I want someone to be able to make a new blog post and attach it to their account when logged in. How can I attach a post开发者_JAVA百

I'm new to rails and am done setting up my login system. However, I want someone to be able to make a new blog post and attach it to their account when logged in. How can I attach a post开发者_JAVA百科 to their user_id as well as list all their previous posts?


Define a model posts ( should have column name user_id )

model Post < ActiveRecord::Base
  belongs_to :user
end

In user Model

model User < ActiveRecord::Base
  has_many :posts
end

With the above defined associations user_id will be a foriegn key to User model so you can get all posts by user something like below

 User.find(id).posts


There are quite a few different approaches, but John Nunemaker's user_stamp gem is pretty straightforward and simple to get running.

https://github.com/jnunemaker/user_stamp

Just add a creator_id and updater_id to your table, a single line in your ApplicationController, and it'll do the rest!


You can associate models with each other by following this guide on rails associations. One solution for you might be:

class Post < ActiveRecord::Base
end

class User < ActiveRecord::Base
  has_many :posts
end

You just have to make sure that your posts table has a column called user_id. Assuming your user table is called users. this will set up a one to many association between users and posts. From a User instance you will be able to do user.posts and get a list of the associated posts for that user.

The guide is much better at explaining this stuff and it's worth your while to read the whole thing--even the parts you don't need right now.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号