显示updated_at会在rails中显示错误

时间:2016-02-27 15:02:13

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试显示用户使用

更新帖子的时间
<%= current_user.hwaters(:updated_at).to_s  %>

User has_many :hwaters

Hwaters belongs_to :user

为什么这不起作用?

3 个答案:

答案 0 :(得分:2)

如果我理解你想做什么,我想你可以试试:

<%= current_user.hwaters.map(&:updated_at).join(', ') %>

顺便说一下,您可以阅读有关Rails Active Record Association here的更多信息,以了解其工作原理。

答案 1 :(得分:1)

您正在尝试显示一对多关联的updated_at。这不起作用,您需要选择其中一个项目并显示时间戳(或按照kitz的描述显示所有项目)

答案 2 :(得分:1)

回答“为什么这不起作用?”的问题:

根据Active Record Associations guide

  

4.3.1.1集合(force_reload = false)

     

collection方法返回所有关联对象的数组。如果没有关联的对象,则返回一个空数组。

(重点补充)。

所以,当你打电话时

current_user.hwaters

您正在接收Array的实例。当你打电话时

current_user.hwaters(:updated_at)

数组不知道如何回复(:updated_at)。所以,它落在地板上,踢和尖叫,并发出一阵大发脾气。

关于“如何使这项工作”的其他答案非常好。而且慷慨。你应该遵循它们。并接受他们。并投票支持他们。并在整个宇宙中传播爱。