2011-07-11 2 views
0

んが生成されたメソッドを持っていませんユーザーhas_oneサーバー。これらはレールの外部キーマジックによってリンクされています。私は方法を用いることで、ユーザテーブルで行うようにメソッドを呼び出すことができるようにしたいが、私はこれを実行しようとしました外国表は、私は(これは工夫によって生成された)、私はメソッドを呼び出すことができる属性の束を持っているユーザーテーブルを持っている

NoMethodError: undefined method `created_at' for #<ActiveRecord::Relation:0x000001036e5a38> 

user.server.created_at呼び出そうとしたときには、常にこのエラーがスローされます。

私はattr_accessorでメソッドを作成するのが適切かもしれませんが、私はどこのRailsとそれを使用し始めるには本当にわからないんだけど、それが偶数であるかどう聞い

Typerror: can't convert Symbol into Integer 

user.server[:created_at] 

そしてそれは、このエラーを投げましたa 良いアイデア。

EDIT:正しい構文を除いて

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 

ありがとう!

+1

モデル定義(User.rb/Server.rb)とスキーマ定義 "users"テーブルと "servers"テーブルを含めてください。 – ghayes

答えて

1

created_at列は実際にはserversという名前のテーブルに存在しますか?

2番目の構文は間違っています。なぜそれがそのエラーを与えるのか分からないが、とにかくそれが動作するとは期待していない。

さらに詳しい説明を述べると、デバッグに役立つ場合があります。

+0

はい、created_atは存在します。そして更新された – Flashuni

+0

モデルにattr_accessibleメソッドDo'hが含まれていることに気付かなかった!みんな、ありがとう! – Flashuni

関連する問題