Noob question: Creating model associations

I’m trying to create a simple blog app without scaffolding, and I’m having problems with associations.

I’m relatively new to this, and I would love some help. I’m sorry for bugging you with such a newbie question, but I couldn’t find a tutorial about this.

I made my models like this:

model g User username password

model g Admin

model g Poster

model g Post title content

then, I set the associations like this:

User

has_many :admins

has_many :users

Poster

belongs_to :User

Post

has_many :posts

belongs_to :Poster

Admin

has_many: users

then, when I go to the rails console, I cant make a post that belongs to poster, or a post that belongs to poster…

User.create(:name => “joe”)

usr = User.last

usr.Poster.create() ---- returns an error

What am I doing wrong here?

I'm trying to create a simple blog app without scaffolding, and I'm having
problems with associations.

I'm relatively new to this, and I would love some help. I'm sorry for
bugging you with such a newbie question, but I couldn't find a tutorial
about this.

Have a look at the Rails Guide on ActiveRecord Associations. It should help.

I made my models like this:
model g User username password
model g Admin
model g Poster
model g Post title content

then, I set the associations like this:
User
  has_many :admins
  has_many :users

Poster
  belongs_to :User

If poster belongs_to user then you should also have user has_many or
has_one poster. However, going solely on the names of the classes are
you sure you want a posters table? Is a poster just a user?

Post
  has_many :posts

What?

  belongs_to :Poster

Again you have not got the matching has_many

Admin
  has_many: users

Again this does not match the spec in users.

then, when I go to the rails console, I cant make a post that belongs to
poster, or a post that belongs to poster...

User.create(:name => "joe")
usr = User.last
usr.Poster.create() ---- returns an error

What am I doing wrong here?

I think it would be worth your while working right through some
tutorails. railstutorial.org is good and is free to use online. Make
sure that any tutorial you use is for rails 3 and that you have the
right version of rails installed.

Colin

Taking a positive spin: the original poster (no pun intended) might be
trying to separate concerns, putting the authentication,
authorization, and accounting stuff in User, and the stuff having to
do with posting, in Poster, thus preventing a common antipattern of
User becoming a God Object.

I started doing something similar with one of my side projects, until
I found out that Heroku now limits the databases of free apps to a
number of *rows*, rather than *bytes* like they used to. :slight_smile:

-Dave