I have seen two different approaches in saving user preferences.
APPROACH 1: Serializing them and saving in one of the column of USERS table
APPROACH 2: Creating a separate table PREFERENCES and make a has_many association from USERS to PREFERENCES.
Which one of the above two approaches would you prefer and what are the pros and cons of each over other?
It's usually a good idea to favor normalization. The second solution keeps your models cleaner, allows for easy extensibility if new preferences are added, and keeps your tables uncluttered.