We generate a rails model only once, when we want to create a new table in the database. After that we use migrations to make changes to our tables.
rails generate model User name:string email:string
bundle exec rake db:migrate
bundle exec rake db:rollback
rails console # Saves to DB
rails console --sandbox # Will not save to DB
>> User.new
>> user = User.new(name: "Test One", email: "asdf@asdf.com") #Create in memory
>> user.save # Write to DB, returns true on success
>> user.name
>> user.updated_at
>> user2 = User.create(name: "Test two", email: "asdf1@asdf.com") # Create and write to DB
>> user2.destroy
>> User.find(1)
>> User.find_by(email: "asdf@asdf.com")
>> User.first
>> User.all
>> user.email = "test@one.com"
>> user.save
>> user.reload # If you don't want to save your changes, and read details from DB
>> user.update_attributes(name: "Testing One", email: "qwer@qwer.com") # write to DB
>> user.update_attribute(:name, "Tester One")
rake test:prepare
rails generate migration add_password_digest_to_users password_digest:string