私はRoRで電子商取引の店を作ろうとしています。必要な機能のほとんどは何の問題もありませんでしたが、今では本当に誰かの助けが必要です。Railsは動的な属性を作成します
"Size"、 "Weight"、 "Color"などの商品属性を作成したいと思います。 モデルの移行でこの属性を定義するのが最も簡単ですが、今は属性を動的にしたいと考えています。主な問題は、製品を作成しようとすると、フォームの属性を持つすべてのパラメータを取得できないということです。
製品/ new.html.erbので
<%= form_for @product, url: admin_products_path(@product) do |f| %>
<%= f.label :name, 'Name' %>
<%= f.text_field :name, class: "form-control" %>
<%= text_field_tag "product[product_feature][]" %>
<%= text_field_tag "product[product_feature][]" %>
<%= f.submit "Submit" %>
<% end %>
、私は、属性名と値を持つ多くのフィールドを生成し、それらを記入し、それらをinterate、最終的に製品の属性を作成するには、コントローラでは、これらのparamsを使用します。
params[:product_features].each do |k, v|
ProductFeature.create(name: k, value: v, product_id: product_id)
end
のような動的な属性を操作することができますすべての宝石は、Railsの5+で作業していないので、私はこの問題の解決策を見つける必要があります。
私はこれのために単純なdbソリューションを使っていますが、paramsを作成するのは不快です。ここにあります。相続人
Product.rb
class Product < ApplicationRecord
has_many :product_features
has_many :features, :through => :product_features
end
ProductFeature.rb
class ProductFeature < ApplicationRecord
belongs_to :product
belongs_to :feature
end
Feature.rb
class Feature < ApplicationRecord
end
のようなものは、私には聞こえClassMethods.html –