Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practice for converting integer value column to string representation

Lets say you have a model like the following:

class Stock < ActiveRecord::Base
  # Positions
  BUY = 1
  SELL = 2
end

And in that class as an attribute of type integer called 'position' that can hold any of the above values. What is the Rails best practice for converting those integer values into human readable strings?

a) Use a helper method, but then you're force to make sure that you keep the helper method and model in sync

def stock_position_to_s(position)
  case position
  when Stock::BUY
    'buy'
  when Stock::SELL
    'sell'
  end
  ''
end

b) Create a method in the model, which sort of breaks a clean MVC approach.

class Stock < ActiveRecord::Base
  def position_as_string
    ...snip
  end
end

c) A newer way using the new I18N stuff in Rails 2.2?

Just curious what other people are doing when they have an integer column in the database that needs to be output as a user friendly string.

Thanks, Kenny

like image 950
kennyc Avatar asked Oct 24 '25 01:10

kennyc


1 Answers

Sounds to me like something that belongs in the views as it is a presentation issue.

If it is used widely, then in a helper method for DRY purposes, and use I18N if you need it.

like image 133
frankodwyer Avatar answered Oct 25 '25 16:10

frankodwyer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!