#ruby-on-rails #ruby-on-rails-4
#ruby-on-rails #ruby-on-rails-4
Вопрос:
У меня есть функция «Добавить в корзину», которая работает нормально на основе сеансов, поэтому ни один пользователь в данный момент не вошел в систему.
Вот модель
class Cart < ActiveRecord::Base
has_many :tutors
def add_tutor(tutor_id)
tutor = Tutor.find(tutor_id)
if tutor
self.tutors << tutor
end
save
end
end
Вот контроллер
class CartsController < ApplicationController
def show
@cart = current_cart
end
def add_to_cart
current_cart.add_tutor(params[:tutor_id])
redirect_to tutors_path
end
end
Что я хотел бы сделать, так это то, что при проверке пользователя они будут перенаправлены на страницу с простой формой запроса их имени / адреса электронной почты / номера телефона, и когда это электронное письмо отправляется мне, оно включает товары в их корзину.
В настоящее время я использую gem 'mail_form'
, и это то, что я настроил до сих пор.
Модель checkout.rb
class Checkout < MailForm::Base
attribute :name, :validate => true
attribute :email, :validate => /A([w.% -] )@([w-] .) ([w]{2,})z/i
attribute :hp, :validate => true
def headers
{
:subject => "Tutor Checkout",
:to => "xxx@xxx.com"
}
end
end
Контроллер checkouts_controller.rb
class CheckoutsController < ApplicationController
def new
@checkout = Checkout.new
end
def create
@checkout = Checkout.new(params[:checkout])
@checkout.request = request
if @checkout.deliver
flash[:notice] = 'Thank you! We will be in touch with you shortly!'
else
flash[:error] = 'There was an error in sending your message!'
render :new
end
end
end
и под views/checkouts/new.html.erb
ним просто форма с запросом их информации.
Что я действительно понятия не имею, с чего начать, так это создание связи между Carts
и Checkouts
и как мне вообще включить товары в корзину для отправки вместе с электронной почтой?
Любая помощь или совет будут с благодарностью приняты! Спасибо!
Комментарии:
1. Ассоциация должна быть оформлением заказа has_many carts. В корзине есть множество наставников. Верно? Затем вы можете вызвать корзину чекаутов и всех преподавателей, связанных с этой корзиной.