Как вставить разделенные запятыми значения в активной форме администратора? - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть три модели Item, ItemVariations и ItemStocks. Модель товара имеет много items_variations. Аналогично, item_stocks содержит несколько item_variation_ids со значениями, разделенными запятыми, например 1,2,3. Модель товара также имеет много item_stocks. Модель Item_variation имеет поля Variation_Name и Variation_value, которые я могу добавить из модели элемента в форме активного администратора. Теперь то, что мне сейчас нужно, это для множественных вариантов_имя и варианта_значения, я должен иметь возможность вставить одно значение stock_qty, являющееся одним из полей в модели item_stock, из одной формы. смотреть скриншот enter image description here

#app/models/item.rb
class Item < ApplicationRecord
has_many :item_variations, foreign_key: :items_id
has_many :item_stocks, foreign_key: :items_id
accepts_nested_attributes_for :item_images, :item_variations, :item_stocks, allow_destroy: true
end

item_variation модель

#app/models/item_variation.rb
class ItemVariation < ApplicationRecord
belongs_to :item
validates_associated :item
has_attached_file :image, :path => ':rails_root/public/system/:class/:id/:style/:filename',
                     :url => '/system/:class/:id/:style/:filename'
validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/

конец

Модель товара_стока

#app/models/item_stock.rb
class ItemStock < ApplicationRecord
belongs_to :item
end

И, наконец, моя активная административная форма

#app/admin/items.rb
ActiveAdmin.register Item do
permit_params :item_id,
:item_name, 
:item_code,
:products_id, 
:display_tag,
:summary,
:description,
:additional_attribute_name,
:additional_attribute_text,
:on_sale,
:price,
item_images_attributes: [:image, :id, :_destroy],
item_variations_attributes: [:id, :variation_name, :value, :image, :_destroy]
action_item :create, only: :show do
link_to("New Item", new_admin_item_path(@items),
class: :button)
end
index do
actions
end
form :html => { :enctype => "multipart/form-data" } do |f|
f.semantic_errors *f.object.errors.keys
f.inputs "Item Details" do
  f.input :item_name
  f.input :item_code
  f.inputs "Item Photos" do
  f.has_many :item_images, allow_destroy: true do |p|
  p.input :image, :required => true, :label=>'Photo', hint: p.object.image? ? image_tag(p.object.image.url, height: '100') : content_tag(:span, "Upload JPG/PNG/GIF image")
end
end
f.input :products_id, :as => :radio, :label=>"Product", :collection => Product.all.collect {|product| [product.product_name, product.id]}
  f.input :display_tag
  f.input :summary
  f.input :description
  f.input :additional_attribute_name
  f.input :additional_attribute_text
  f.input :on_sale
  f.input :stock_qty
  f.input :price
  f.inputs "Item Variations" do
  f.has_many :item_variations, allow_destroy: true do |p|
  p.input :variation_name, :as => :select, :collection => VariationAttribute.all.collect {|variation_attribute| [variation_attribute.variation_name]}
  p.input :value
  p.input :image, :label=>'Photo', hint: p.object.image? ? image_tag(p.object.image.url, height: '100') : content_tag(:span, "Upload JPG/PNG/GIF image") 
end
end
end
f.actions do
f.action :submit,
button_html: {
class: "btn primary",
data: {disable_with:  'Please Wait...'}
}
f.action :cancel, :wrapper_html => { :class => 'cancel'}, label: "Cancel"
end
end
end

Для этого лучше всего вставить item_variation_ids как значения, разделенные запятыми, в модели item_stocks. Как это сделать? Любая идея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...