我正在创建一个非常基本的电子商务应用程序来自学 Rails,我遇到了第一个障碍:
我创建了一些关联,以便商家可以为他们发布的产品分配类别,并且按照我的方式工作得很好,但是,现在的工作方式是,当商家创建新产品时,类别表中的所有类别都是可供选择。假设,如果我想将该列表限制为仅包含该特定商家创建或关联的类别,我假设从categories_merchants
表中获取,我将如何去做?
我在下面展示了相关表格和表格,以显示我所做的但遗漏了模型,但是我在其中包含所有适当的关联:
产品表:
create_table :products do |t|
t.integer :merchant_id
t.string :title
t.text :body
t.date :publish_date
t.date :expiry_date
t.timestamps
类别表:
create_table :categories do |t|
t.string :name
t.timestamps
分类_产品表:
create_table :categories_products, :id =>false do |t|
t.integer :category_id
t.integer :product_id
end
add_index :categories_products, [:category_id, :product_id]
分类_商家表:
create_table :categories_merchants, :id =>false do |t|
t.integer :category_id
t.integer :merchant_id
end
add_index :categories_merchants, [:category_id, :merchant_id]
新产品形式:
<%= simple_form_for(@product) do |f| %>
<div class="form-inputs">
<%= f.input :title %>
<%= f.input :body %>
<%= f.association :categories, :as => :collection_select %>
<%= f.input :publish_date %>
</div>
<% end %>
提前致谢 ;)