Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I force ActiveRecord to reload a class?

People also ask

What does ActiveRecord base mean?

ActiveRecord::Base indicates that the ActiveRecord class or module has a static inner class called Base that you're extending.

Can you use ActiveRecord without rails?

One of the primary aspects of ActiveRecord is that there is very little to no configuration needed. It follow convention over configuration. ActiveRecord is commonly used with the Ruby-on-Rails framework but you can use it with Sinatra or without any web framework if desired.

What does reload do in Rails?

Reloads the attributes of object(here @user) from the database. It always ensures object has latest data that is currently stored in database.

What is ActiveRecord in Ruby on Rails?

Active Record is the M in MVC - the model - which is the layer of the system responsible for representing business data and logic. Active Record facilitates the creation and use of business objects whose data requires persistent storage to a database.


The answer is yes!

Blog.reset_column_information

I always used new models in migrations

    MyBlog < ActiveRecord::Base
      set_table_name 'blogs'
    end

    def self.up
      MyBlog.all.each do |blog|
        update_some_blog_attributes_to_match_new_schema
      end
    end

But Blog.reset_column_information is more convenient.


Create new instances:


Old_blogs = Blog.all

# change/modify db table in here

New_blogs = Blog.all # this should be reloaded or you could use the .reload on this

# change information, load old into new

ex.

Old_blogs.each do |blog|
  New_blogs.find(blog.id).title = blog.title
end