Проблема: У меня есть ассоциация "own_to" для customer.id, но я также хочу, чтобы люди, которые не вошли в систему, могли создавать заказы.
Так что мне нужна только ассоциация , если пользователь вошел в систему
Как я могу сделать:
belongs_to :buyer, class_name: "User"
, но связывать его можно только если пользователь вошел в систему.
Я пробовал:
belongs_to :buyer, class_name: "User", if: @user.current_user(true)
не работает
belongs_to :buyer, class_name: "User", if: user_signed_in
def user_signed_in
@user.current_user(true)
end
не работает
И еще несколько итераций этого.
Я использую Devise, и похоже, что он не работает в моделях так, как в контроллерах.
В контроллере я сделал это: (несколько не актуально)
if user_signed_in?
@order.buyer_id = current_user.id
else
@order.buyer_id = nil
end
Что я могу сделать, чтобы
belongs_to :buyer, class_name: "User"
ассоциируется только когда пользователь вошел в систему?
Моя миграция customer_id:
class AddBuyerIdToOrders < ActiveRecord::Migration[5.2]
def change
add_column :orders, :buyer_id, :integer
end
end