Consider this scenario, I have a table which stores the
"likes" and it would stores the likes from all sorts of tables like
blogs,comments, postings, reviews, etc. So the table has the following
columns(id, like_id and type) where like_id is the id from any of the
previous mentioned tables and type would be single char column to
identify the foreign key table(B for blog, C for comments and so on).
How am i supposed to create the relation between like table and the
other tables?
Have a look at any of the polymorphic tagging libraries out there for an architectural model. The last time I did this, I used mbleigh-acts-as-taggable-on (Rails 2.3). But there were lots of other examples out there in that vein.
Check out the :polymorphic option to belongs_to - it does exactly what
you're describing, except for the (premature) "optimization" of
storing a single character for the type.
i do it for rails 3 but i think that will work for you too
in the migration...
create_table :likes do |t|
t.references :likeable, polimorphyc => true #with that, rails build
likeable_id for the id of the others tables, and likeable_type for
identify the table
.....
....
end