Когда я хочу создать новую покупку, как показано ниже, я хотел бы заменить ввод имени и цены.
<%= simple_form_for([@order, @purchase]) do |f| %>
<%= f.error_notification %>
<%= f.input :name %>
<%= f.input :quantity %>
<%= f.input :price %>
<%= f.button :submit %>
<% end %>
Для ввода имени я хотел бы иметь коллекцию, которая сохраняет идентификатор выбранного продукта (из таблицы продуктов).
Что касается ввода цены, я хотел бы отобразить цену выбранного продукта выше, сохранить цену в таблице покупок.
### #models
class Order < ActiveRecord::Base
has_many :purchases, dependent: :destroy
has_many :products
end
class Purchase < ActiveRecord::Base
belongs_to :order
end
class Product < ActiveRecord::Base
has_many :orders
end
Отношения и кодирование их в формы временами смущают меня.
Я бы предположил, что модели должны быть настроены следующим образом:
class Order < ActiveRecord::Base
has_many :purchases, dependent: :destroy
has_many :products, :through => :purchases
end
class Purchase < ActiveRecord::Base
belongs_to :order
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :purchases
has_many :orders, :through => :purchases
end
Затем я бы создал столбец product_id в покупках. Если это правильно, как мне создать код коллекции и распечатать цену выбранного предмета (в коллекции) в форме?
Написание кода для отношений — вот где я застрял.
Я также хотел бы использовать драгоценный камень rails-select2
.