Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby中的Create函数返回的是ActiveRecord::Relation对象,而不是实际记录_Ruby On Rails_Ruby_Create React App - Fatal编程技术网

Ruby on rails ruby中的Create函数返回的是ActiveRecord::Relation对象,而不是实际记录

Ruby on rails ruby中的Create函数返回的是ActiveRecord::Relation对象,而不是实际记录,ruby-on-rails,ruby,create-react-app,Ruby On Rails,Ruby,Create React App,我正在创建两个对象,然后使用重定向功能将它们传递给视图。 Order对象在视图中很好用,但是Message对象的类型是ActiveRecord::Relation,任何对Message.variable的调用都会得到一个noMethodError。这是密码 控制器代码: @order = Order.create(order_params.merge( child: child, address: prevOrderInfo.address,

我正在创建两个对象,然后使用重定向功能将它们传递给视图。
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">]>'
#订单对象
--- '#'
#消息对象
--- '#'
erb使用@order就可以了。
把“玛姬·辛普森”放到网页上

但是@message的任何用法,如
获取全名的noMethodError


不确定我在做什么,但为什么订单表的create调用会返回一种类型,消息表返回另一种类型?

@Message
似乎是某种类型的集合。您应该能够调用
,或者可以对其进行迭代并执行以下操作:

<% @message.each do |msg| %>
  <%= msg.full_name %>
<% end %>

或者,您可以更改代码以执行重定向,如下所示:
重定向到订单路径(@order,message\u id:@message.id)

在顺序显示操作中,您将有:

@order=order.find(参数[:id])

@message=message.find(参数[:message\u id])

使用这种方法,您的视图中将有一个
@order
对象和一个
@message
对象


我希望这会有所帮助。

我会尝试一下,但我真正的问题是为什么create函数返回两种不同的类型?问题在于show方法。我使用message设置@message。其中。。。。非常感谢你!!没问题,随时都可以!!:)