ego as a developer. - So that no one can point fingers at our code. - Someone told us to do so. - So that we can brag about it. - For code climate score.
:user do |t| # t.string :name # t.admin :boolean, default: true # end end class UsersController < ApplicationController def index if current_user.admin? else end end end
t.string :name # t.references :role # end end class Role < ActiveRecord::Base # create_table :roles do |t| # t.integer :role_id # end end # Somewhere in controller current_user.role.role_id == 1 ? do_admin_work : do_normal_user_work
1 means? - Should it be the responsibility of role model instead? - If we have several roles do we have to write all the method for different role? eg:) moderator?
1 } ROLE_HASH.each do |role_name, role_value| define_method("#{role_name}?") do role_id == role_value end end end # Somewhere in controller current_user.role.admin?
cruel. It can’t be reused. - Add logic to model. But don’t make it a dumping ground for everything. - Move things away from model which doesn’t belong there.
need some rails inbuilt view helper. If possible use presenter pattern. - Create separate class or module for function which does not require rails view helpers. - Helpers should be a pure function. Should not depend on instance variable
@description = Product.find(params[:id).description.text end end module ProductHelper def product_description @description.capitalize.truncate() end end