Я работаю над разделом администрирования продукта. У меня есть productvariants
, в котором может быть от productattributevalues
до productvariantdetails
.
productattributevalues
(зеленый, желтый, S, XL) принадлежит_1007 * (цвет, размер и материал).
Я хотел бы иметь два отдельных селектора на моем productvariants/_form
, где я могу выбрать (опционально), если productvariant
имеет productattributevalue
типа productattribute
: применен размер или цвет.
Я изменил свои модели и ввел два псевдонима для productattributevalues
. Один для каждого атрибута.
class Productvariant < ActiveRecord::Base
attr_accessible :productattributesizes, :productattributecolors
has_many :productattributevalues
has_many :productvariantdetails
has_many :productattributevalues, :through => :productvariantdetails
has_many :productattributecolors, :through => :productvariantdetails, :source => :productattributevalue
has_many :productattributesizes, :through => :productvariantdetails, :source => :productattributevalue
accepts_nested_attributes_for :productvariantdetails, :allow_destroy => true
end
class Productattributevalue < ActiveRecord::Base
attr_accessible :value, :productattribute_id
scope :product_color, joins(:productattribute).where('productattributes.attributename' => 'color')
scope :product_size, joins(:productattribute).where('productattributes.attributename' => 'size')
belongs_to :productattribute
end
Это мое мнение
<%= form_for [:admin, @productvariant], :html => {'role' => 'form' } do |f| %>
.
.
.
<%= f.select(:productattributecolors, Productattributevalue.product_color.uniq.order('id asc').map{|s| [s.value, s.id]}, {:selected => params[:productattributecolor], :include_blank => false, :prompt => "Select color"}, {}) %>
<%= f.select(:productattributesizes, Productattributevalue.product_size.uniq.order('id asc').map{|s| [s.value, s.id]}, {:selected => params[:productattributesize], :include_blank => false, :prompt => "Select size"}, {}) %>
.
.
.
<%= f.submit "Save" %>
<% end %>
В настоящее время я получаю:
Productattributevalue(#2232715140) expected, got String(#70262645253120)
Как мне заставить это работать?
Заранее спасибо!