我创建了两个对象,然后使用 redirect_to 函数将它们传递给视图。
Order 对象在视图中很好并且可用,但 Message 对象属于 ActiveRecord::Relation 类型,并且对 message.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 %>
将“Maggie Simpson”放入网页
但是@message 的任何用法<%= @message.full_name %>
都会为 full_name 获取 noMethodError
不知道我在做什么,但为什么 Order 表的 create 调用会返回一种类型,而 Message 表会返回另一种类型?