gjb
gjb

Reputation: 6317

Rails: Model instance method or helper method?

By convention, should the following be defined as an instance method of my model or a helper method?

# app/models/user.rb
class User < ActiveRecord::Base
  def full_name
    "#{first_name} #{last_name}"
  end
end

or

# app/helpers/users_helper.rb
module UsersHelper
  def full_name
    "#{@user.first_name} #{@user.last_name}"
  end
end

Many thanks.

Upvotes: 12

Views: 5190

Answers (2)

kain
kain

Reputation: 5570

Go with the first (keep in model), also because you might want to do other stuff, like combined indexes :)

Upvotes: 9

apneadiving
apneadiving

Reputation: 115521

Everything directly related to your model should stay in your model.

This way, you keep coherent logic and tests.

Upvotes: 5

Related Questions