Rails: How to run `rails generate scaffold` when the model already exists?

TL;DR: rails g scaffold_controller <name> Even though you already have a model, you can still generate the necessary controller and migration files by using the rails generate option. If you run rails generate -h you can see all of the options available to you. Rails: controller generator helper integration_test mailer migration model observer performance_test plugin … Read more

How do you delete an ActiveRecord object?

It’s destroy and destroy_all methods, like user.destroy User.find(15).destroy User.destroy(15) User.where(age: 20).destroy_all User.destroy_all(age: 20) Alternatively you can use delete and delete_all which won’t enforce :before_destroy and :after_destroy callbacks or any dependent association options. User.delete_all(condition: ‘value’) will allow you to delete records without a primary key Note: from @hammady’s comment, user.destroy won’t work if User model has … Read more

How can I disable logging of asset pipeline (sprockets) messages in Ruby on Rails 3.1?

Place the following code in config/initializers/quiet_assets.rb if Rails.env.development? Rails.application.assets.try(:logger=, Logger.new(‘/dev/null’)) Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env[‘PATH_INFO’] =~ %r{^/assets/} call_without_quiet_assets(env) ensure Rails.logger.level = previous_level end alias_method_chain :call, :quiet_assets end end Updated: It now works for Ruby on Rails 3.2 too (previous attempt fixes before_dispatch, and now we’re going for the … Read more

Rails migration for change column

Use #change_column. change_column(:table_name, :column_name, :date) # a few more examples: change_column(:suppliers, :name, :string, limit: 80) change_column(:accounts, :description, :text) NOTE: the same result can be achieved even outside of db migrations, this might be handy for testing/debugging but this method needs to be used very cautiously: ActiveRecord::Base.connection.change_column(:table_name, :column_name, :date)

How to convert a ruby hash object to JSON?

One of the numerous niceties of Ruby is the possibility to extend existing classes with your own methods. That’s called “class reopening” or monkey-patching (the meaning of the latter can vary, though). So, take a look here: car = {:make => “bmw”, :year => “2003”} # => {:make=>”bmw”, :year=>”2003″} car.to_json # NoMethodError: undefined method `to_json’ … Read more