投票方法を持つ User モデルがあります。投票用のプロキシ メソッドを作成したいと考えています。
これは読みやすい方法です:
def vote_up item
return false unless can? :vote, item
vote item, :up
end
def vote_down item
return false unless can? :vote, item
vote item, :down
end
そして、これはドライな方法です:
%w(up down).each do |vtype|
define_method "vote_#{vtype}" do |item|
return false unless can? :vote, item
vote item, vtype.to_sym
end
end
どちらが優れているのか、その理由は?