У меня есть модель User, в которой много предметов. Рейтинг принадлежит Пользователю и Предмету.
В БД я установил ratings.user_id не равным NULL.
когда я создаю Предмет, я хотел бы сделать это:
def create
current_user.items.create(params[:item]).ratings.create(params[:rating]
redirect_to items_path
end
Однако это приводит к ошибке SQL "user_id не может быть nil"
поэтому я переписал метод создания как
def create
current_user.items.create(params[:item]).ratings.create(params[:rating].merge({:user_id => current_user}))
redirect_to items_path
end
, который отлично работает.
Тем не менее, я думал, что создание цепочки методов create из получателя текущего пользователя заполнит user_id рейтинга. Кто-нибудь знает, почему нет?
ТИА.