0
我正在制作一个类似Instagram的克隆,其中用户上传得到投票的图片。在范围中使用自定义方法/重构自定义方法
我该如何重构这段代码? 如何通过减少百分比来默认范围?
class Picture < ActiveRecord::Base
mount_uploader :picture, PictureUploader
has_and_belongs_to_many :tags
has_many :votes, :dependent => :destroy
def vote_count
return self.votes.count
end
def up_votes
return self.votes.where('up like ?', true).count.to_f
end
def down_votes
return self.votes.where('up like ?', false).count.to_f
end
def percent
return self.up_votes/self.vote_count
end
end
FYI我的投票模型只跟踪画面和用户ID,并拥有高达:布尔,:默认=>假
这一切都似乎比它可能是不够简明,你会如何写这更好的?
好的谢谢。范围如何? – 2014-11-08 05:45:37
您可以在范围内移动这些方法,例如: 范围:votes_status,lambda {| status = false | self.votes.where('up like?',status).count.to_f } – Thorin 2014-11-08 05:53:35