Один из вариантов - хранить разных типов пользователей в разных таблицах (продавцы, супервизоры и боты), чтобы вам не нужно было передавать дополнительные атрибуты как все.
Если вы используете одинтаблицу, тогда вы также можете установить значения по умолчанию для атрибутов равными nil, так что вам не нужно явно передавать nil атрибутам, когда вы не хотите их устанавливать:
add_column :users, :salary, :float, :default => nil
ПРИМЕЧАНИЕ. В MySQLпо умолчанию будет NULL, поэтому вам не нужно явно указывать это в ваших миграциях.