About

This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many pages like this one or sub-pages as you like and manage all of your content inside of WordPress.

Recent Posts

Ruby for Programmers – Part 17: On The ActiveRecord

This goes a little into how to run SQL. You don’t need to know everything, but this is a great tutorial on straight SQL. Good news though, you don’t have to touch any SQL for this. Here’s the tl;dr:

  • A SQL table is a lot like a spreadsheet. You have rows and columns. You should have a table for each data model.
  • Tables and their columns need to manually created and removed. When you need to make a new column, you need to manually tell the system that it needs to be created.
  • “Primary” column(s) are unique and define it. Generally speaking this is just an id number. Rails sets it up so that the database will auto increment the id so you don’t have to worry.

So let’s setup our database. We’ll be using Postgres, so we need to install it. For Macs, use Postgres.app. It’s simple and easy. Postgres provides an installer for Windows. And Linux can use your favorite package manager.

And once it’s setup, we need a database (set of tables) to put it into. You can use the included GUI or the command “createdb” to create a database.

Then we need to install the pg gem, which might be a small issue on any machine. For example on Mac you may need to run env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config to give it the right config file to build the C extension against. Googling eventually finds the right answer.

Hopefully now you have the gem installed, and we can run bundler with pg and ActiveRecord:

And the Railtie:

Now we need to setup the postgres password. Create a new file, config/database.yml, to put the postgres password that you used to setup the postgres root password:

Don’t forget to change the pertinent parts.

With this we can create our first migration to get the database to have the right table information. So let’s create that file:

So that’s a mouthful that’s easier explained in the Rails guide. In short this creates a table with the listed columns. By default the id primary column is create for you, as well as an automatic “created_at” and “updated_at” columns too.

To run our migration you need to run bundle exec rake db:migrate. This occurs whenever you need to run any database migrations.

And now let’s update our Page model:

Yep, it is that small. Rails is smart enough to know that the attributes is the name of the columns. It also includes a finder method and handles saving to the database for you. Of course we need to create the “create page” page since we have an empty database:

Notice how we don’t even need to create a new form? It can re-use the same form because it knows that the data is a new entry instead of an old entry and redirects accordingly.

Lastly, there’s associations, which you can read on the Rails guide. We’ll be going into associations when we start the main project, but for now the guide will do.

And that gets you up to speed with all the major parts of Rails. There’s still tons more to learn, but there’s better guides for what you need after this point:

And that’s it. This last part is available on Github.

  1. Ruby for Programmers – Part 16: Data Models Comments Off on Ruby for Programmers – Part 16: Data Models
  2. Ruby for Programmers – Part 15: Action Packed Viewing Comments Off on Ruby for Programmers – Part 15: Action Packed Viewing
  3. Ruby for Programmers – Part 14: ERB My HTML! Comments Off on Ruby for Programmers – Part 14: ERB My HTML!
  4. Ruby for Programmers – Meta 1: HTML Comments Off on Ruby for Programmers – Meta 1: HTML
  5. Ruby for Programmers – Part 13: Revving Some Metal Comments Off on Ruby for Programmers – Part 13: Revving Some Metal
  6. Ruby for Programmers – Part 12: Totally Metal Comments Off on Ruby for Programmers – Part 12: Totally Metal
  7. Ruby for Programmers – Part 11: Railtying It Together Comments Off on Ruby for Programmers – Part 11: Railtying It Together
  8. Ruby for Programmers – Part 10: Actionpacked Routing! Comments Off on Ruby for Programmers – Part 10: Actionpacked Routing!
  9. Ruby for Programmers – Part 9: Making Pages With Bundler and Rack Comments Off on Ruby for Programmers – Part 9: Making Pages With Bundler and Rack