Я создаю два объекта и затем передаю их в представление с помощью функции redirect_to.
Объект Order в порядке и пригоден для использования в представлении, но объект Message имеет тип ActiveRecord :: Relation и любой вызов сообщения.variable получить noMethodError. Вот код
Код контроллера:
@order = Order.create(order_params.merge(
child: child,
address: prevOrderInfo.address,
zipcode: prevOrderInfo.zipcode,
user_facing_id: SecureRandom.uuid[0..7]))
@message = Message.create(message_params.merge(:order_id => @order.id))
redirect_to order_path(@order, @message)
Просмотр результатов проверки
#order object
--- '#<Order id: 8, user_facing_id: "d1791380", product_id: 1, child_id: 2, shipping_name:
"Marge Simpson", address: "742 Evergreen Terrace", zipcode: "58008", paid: true,
created_at: "2019-09-30 19:29:01", updated_at: "2019-09-30 19:29:01">'
#message object
--- '#<ActiveRecord::Relation [#<Message id: 6, full_name: "Homer ", email: "homer@gmial.com",
message: "This is a message", order_id: 8, created_at: "2019-09-30 19:29:01", updated_at:
"2019-09-30 19:29:01">]>'
html.erb прекрасно использует @order. <%= @order.child.full_name %>
помещает "Мэгги Симпсон" на веб-страницу.
Но любое использование @message, например <%= @message.full_name %>
, вызывает noMethodError для full_name
Не уверен, что я делаю, но зачем создаватьВызовите для таблицы заказа возврат одного типа, а другой для таблицы сообщений?