Я сделал модель удобрения как семена, но когда я нажимаю «добавить в карту», ничего не происходит. Я сгенерировал миграцию, чтобы добавить «удобрение_ид» в «элементы_порядка».
Модели:
class Fertilizer < ApplicationRecord
mount_uploader :image, ImageUploader
has_many :order_items
end
class OrderItem < ApplicationRecord
belongs_to :order
belongs_to :fertilizer
belongs_to :seed
before_save :set_unit_price
before_save :set_total
def unit_price
if persisted?
self[:unit_price]
elsif
fertilizer.price
elsif
seed.price
end
end
def total
unit_price.to_f*quantity.to_f
end
private
def set_unit_price
self[:unit_price] = unit_price
end
def set_total
self[:total] = total * quantity
end
end
class Seed < ApplicationRecord
mount_uploader :image, ImageUploader
belongs_to :product
has_many :order_items
end
Здесь я добавил к контроллеру OrderItem удобрение_id в параметры
контроллер:
class OrderItemsController < ApplicationController
def create
@order = current_order
@order_item = @order.order_items.new(order_params)
#binding.pry
@order.save
session[:order_id] = @order.id
end
def update
@order = current_order
@order_item = @order.order_items.find(params[:id])
@order_item.update_attributes(order_params)
@order_items = current_order.order_items
end
def destroy
@order = current_order
@order_item = @order.order_items.find(params[:id])
@order_item.destroy
@order_items = current_order.order_items
end
private
def order_params
params.require(:order_item).permit(:seed_id, :fertilizer_id, :quantity)
end
end
вид семян:
.main-content
.site-content-inner.detail-product
.container
.row
/ Main content
#primary.content-area.col-xs-12.col-sm-12.col-md-12
#main.site-main
.product-single
.product-content-single
.row
.col-sm-5
.single-product-media
= image_tag(@seed.image_url , width: 400, height: 500)
.col-sm-7
.single-product-content
%h1.product-title= @seed.name
%p
.product-desc= @seed.description
= form_for @order_item, remote: true do |f|
= f.hidden_field :seed_id, :value => @seed.id
= f.number_field :quantity, :value => 1, :min => 1
= f.submit "Add to cart"
вид удобрения:
.main-content
.site-content-inner.detail-product
.container
.row
/ Main content
#primary.content-area.col-xs-12.col-sm-12.col-md-12
#main.site-main
.product-single
.product-content-single
.row
.col-sm-5
.single-product-media
=image_tag(@fertilizer.image_url)
.col-sm-7
.single-product-content
%h1.product-title= @fertilizer.name
= form_for @order_item, remote: true do |f|
= f.hidden_field :fertilizer_id, :value => @fertilizer.id
= f.number_field :quantity, :value => 1, :min => 1
= f.submit "Add to cart"
Посмотри, пожалуйста, потому что я не знаю, где проблема