2

I'm beginning RoR. I've designed my model like this :

User -login:string -password:string -email:string -followers:array (type user)

I have now this termainal rails command :*

rails generate model User login:string password:string email:string

but i don't know how to tell my generated model that I would like an array of User.

I think my question is a bit stupid because Ruby is like PHP (no type). But I prefer to ask ... Thanks for your help !

1 Answer 1

2

If you want to have something like followers you have to use a many-to-many association. Take a look at associations in the rails guide : http://guides.rubyonrails.org/association_basics.html

You have to remember that when you generate a model and you specify login:string for example you specify the name and the type of the column which will be created in your database.

The right way is to have a many-to-many relationship. You have to say that your User has_and_belongs_to_many followers (I assume if a Use has many followers he can follow many User?). You will need to create an other table which will associate a user to another.

You'll find many articles on google which explain how to create many to many relationship. But RailsGuides are really well done, take a look at it first.

Edit:

As your follower will be also be of type User, you'll have to do something like that: has_and_belongs_to_many :followers, :class_name => "User" You can take a look at the documentation for other options: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_and_belongs_to_many

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.