これが私のユースケースです:
CSVファイルからインポートされた消費税率のコレクションがあります。フィールド名をミラーリングするためにMongoidモデルを作成しました(これらは変更できません)。
class SalesTaxRate
include Mongoid::Document
field :state, type: String
field :zip_code, type: String
field :tax_region_name, type: String
field :tax_region_code, type: String
field :combined_rate, type: Float
end
次に、アプリで使用するモデルを作成しています。ロケーションと呼ばれるものを作成したいとします。
class Location
include Mongoid::Document
field :name, type: String
field :street, type: String
field :city, type: String
field :state, type: String
field :zip_code, type: String
end
次のように呼び出すだけで、場所の消費税率を取得できるようにしたいと思います。
home = new Location(...)
home.sales_tax_rate
私はhome
それを調べるだけで、を介してレートを設定することは決してありません。
これを行うための「正しい」方法は何ですか?私は2つのアプローチを考えることができます-簡単な方法は、ルックアップを行うメソッドを定義することであるように思われます。
class Location
...
def sales_tax_rate
SalesTaxRate.where(zip_code: self.zip_code).first.combined_rate
end
そして、これは機能します。しかし、私はbelongs_to
協会を使うべきかどうか、もしそうなら、なぜそしてどのようにそれをするのが最善か疑問に思っています。
まだここでロープを学んでいるので、これが初心者/愚かな質問である場合はお詫びします。よろしくお願いします!