Являясь новым для Ruby on Rails и наблюдал во время учебного пособия, что новое сообщение было создано как показано ниже.Rails: Почему мы должны использовать текущего пользователя для создания сообщения?
Моя точка, почему мы должны создать сообщение, используя current_user.build или current_user.new (я прочитал, что билд псевдоним нового)
В модели сообщений, мы можем просто создать переменную user_id и сохраните в нем current_user.id, и таким образом мы знаем, какое сообщение было создано пользователем.
Что является причиной использования current_user.build
def new
@message = current_user.messages.build
end
def create
@message = current_user.messages.build(message_params)
if @message.save
redirect_to root_path
else
render 'new'
end
end
Опубликовать схему для вашей модели сообщений. Должен иметь атрибут: user_id в нем, который будет автоматически заполняться оператором сборки. –
Да, существует user_id как целое число. Точно так же Rail автоматически соглашается с тем, что, поскольку пользователь является моделью, поэтому в Message, должен быть user_id? Как в _id согласно конвенции? – Tahseen
Точно. Если user_id находится в таблице, тогда, когда вы делаете current_user.messages.build, он автоматически заполнит его. –