更多的信息,這裏是我會怎樣構建的初始模式:
class Product < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :category
end
class Manufacturer < ActiveRecord::Base
has_many :products
end
class Category < ActiveRecord::Base
has_many :products
end
至於rating
,您是否要創建模型取決於如何填充等級。如果評級由單一來源決定,那麼我只會將其作爲產品模型中的一個屬性進行存儲。如果評分是根據用戶輸入計算得出的,則可以考慮使用ratings table
即belongs_to :product
。
關於價格,聽起來最好的辦法是將價格存儲在Product model
。我將存儲價格與8位精度和2的比例小數,可與軌道發電機rails g migration AddPriceToProducts price:decimal{8.2}
或直接在這樣的遷移來完成:
class AddPriceToProducts < ActiveRecord::Migration
def change
add_column :products, :price, :integer{8.2}
end
end
這將價格存儲爲BigDecimal
,允許小數點左邊的6位數字和右邊的2位數字。最後,如果你的應用程序打算銷售產品,我建議有一個名爲InvoiceProducts
或類似的表格,它可以在產品銷售時存儲產品價格。隨着產品價格變化或產品退役,這將允許準確的長期數據。
嘗試閱讀關於連接表和外鍵的更多信息。請參閱[本教程](http://www.theodinproject.com/ruby-on-rails/active-record-associations)。 –
我一定會閱讀更多。謝謝你的鏈接。 – Riggs