2
我有三個表,其中之一是許多一對多的關係表顯示元素的列表:如何使用連接表
class Category < ApplicationRecord
has_many :categorizations
has_many :products, :through => :categorizations
end
class Product < ApplicationRecord
has_many :categorizations, dependent: :destroy
has_many :categories, :through => :categorizations
end
和表格分類已:
class Categorization < ApplicationRecord
belongs_to :category
belongs_to :product
end
def product_params
params.require(:product).permit(:name_product, :hallmark, :description, :image_url, :price, category_ids:[])
end
在new.html.erb:
我一個陣列中已保存的類別的ID
<% Category.all.each do |category| %>
<label>
<%= check_box_tag "product[category_ids][]", category.id, field.object.categories.include?(Category) %>
<%= category.name_category %>
</label>
<%end%>
我無法顯示類別名稱。在show.html.erb中,我嘗試了一切,但它只顯示產品所屬類別的ID。
如何顯示類別名稱?在數據庫中,我可以做一個JOIN
,但在Ruby on Rails中很難。
什麼是部門?你的'new.html.erb'代碼與問題中其餘的信息無關。 – infiniteRefactor
「在數據庫中,我可以加入......」。是的,這可能是正確的做法。當DBM能夠完成篩選和處理工作時,您希望避免移動大量數據,並讓Ruby或Rails完成繁重的工作。我已經看到需要花費數秒鐘才能完成數據移動的任務,而在Ruby中處理的任務需要亞秒級時間才能讓DBM進行搜索,篩選和緊縮,然後僅返回所需的記錄。這可以減少應用程序或Web服務器上的網絡負載和CPU負載。 –