我有一个用户表,其中包含一些我可以用方法调用的属性(这是由设计生成的):
user.name
但是我创建了另一个表,因为用户has_one服务器。这些是由rails的外键魔法链接的。我希望能够通过使用方法调用类似于用户表的方法,但在尝试调用user.server.created_at
时总是会抛出此错误NoMethodError: undefined method `created_at' for #<ActiveRecord::Relation:0x000001036e5a38>
然后我尝试这样做:
user.server[:created_at]
这引发了这个错误:
Typerror: can't convert Symbol into Integer
我听说attr_accessor可能适合创建方法,但我不确定从哪里开始使用Rails,如果这甚至是个好主意。
编辑:
我正试图结束这样的事情:
time_left = (Time.now.to_i - current_server[:created_at].to_i)
除了语法正确。 Created_at确实存在,并且正在以正确的时间写入。
用户模型:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_one :server
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :email, :password, :password_confirmation, :remember_me
服务器型号:
class Server < ActiveRecord::Base
belongs_to :user
end
谢谢!
答案 0 :(得分:1)
created_at列是否实际存在于名为servers的表中?
第二种语法是错误的。我不知道它为什么会出现这个错误,但我不希望它能起作用。
发布更多完整代码可能有助于调试。