i am very new to rails . I am having a table holding all users basic information like
users(id,name,email) now i am trying to keep some additional infor
As of MySQL 5.7.8 there is a support for a native JSON data type, so saving a hash is much more direct and can be searchable and more:
https://dev.mysql.com/doc/refman/5.7/en/json.html
The data type for that column must be text so in your migrations you can specify:
add_column :user_details, :additional_info, :text
Then in your model you have to specify that this column will contain a hash and you do that with the serialize command:
class UserDetail < ActiveRecord::Base
serialize :additional_info
After that you can save hash information.
@ud = UserDetail.new
@ud.additional_info = {:salary => 1000000}
@ud.save
Another alternative would be to use JSON fields on the model. The migration would have something like:
create_table :events do |t|
t.json 'payload'
end