O'Reilly logo

Learning Rails by Edd Dumbill, Simon St. Laurent

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Creating Helper Methods

So far, this chapter has shown you how to use a number of the helper methods that come with Rails. You can also create your own helper methods. There are lots of good reasons to do so:

Less repetition

You can come closer to Rails’ DRY (Don’t Repeat Yourself) ideal if you can combine multiple pieces into a single invocation.

More readable code

You can see more obviously which pieces of your code are actually doing the same work when they call the same method, instead of perpetually reinventing the wheel.

More consistency

The same code used in multiple places will rarely stay identical.

Sharing across views

Multiple views within an application can reference the same helper methods.

Creating helper methods might not be your very first priority in creating an application, but once you have a basic idea of what you want to create in your views, it’s a good idea to start assembling common tasks into helper methods.

Within the application directory structure, helper methods go into the app/helpers directory. At this point, the guestbook application will have two files there: application_helper.rb and people_helper.rb. Helper methods that are defined in application_helper.rb are available to views throughout the entire Rails application, whereas methods defined in people_helper.rb are only available to views that pertain to operations on the person model. For now, the helper methods built in this section can go in people_helper.rb and graduate to application_helper.rb if you ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required