0
作る私はこの機能Rubyはインスタンスメソッドやクラスメソッド
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
これはhttps://codereview.stackexchange.com/に適していますが、それをどのように使いたいかという問題のほうが多いようです。あなたはあなたのKdpReportのプロパティとして、または機能的なユーティリティとしてそれをしますか?個人的には、おそらくモデルのインスタンスメソッドを使うでしょう。 – Unixmonkey
属性が「存在」ですか? –