我有这个功能
def get_free_downloads(kdp_report)
#return 0 if no free reports found
return (kdp_report.presence and kdp_report.transaction_type == 'Free - Promotion') ? kdp_report.downloads : 0
end
我想将其移至模型
什么会更好,更具可读性和更多的轨道方式?
1)
class KdpReport < activeRecord::Base
def self.get_free_downloads(kdp_report)
return (kdp_report.presence and kdp_report.transaction_type == 'Free - Promotion') ? kdp_report.downloads : 0
end
end
并像这样使用它:
free_downloads = KdpReport.get_free_downloads kdp_report
2)
或者像这样:
class KdpReport < activeRecord::Base
def get_free_downloads
return transaction_type == 'Free - Promotion') ? downloads : 0
end
end
并像这样使用:
free_downloads = kdp_report.presence ? kdp_report.get_free_downloads : 0
答案 0 :(得分:0)
尝试:
class Report < ApplicationRecord
def free_downloads
transaction_type == 'Free - Promotion' ? downloads : 0
end
end
free_downloads = kdp_report_object.free_downloads
可以省略返回。