2

ユーザー証書を発行しようとしています。

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
  has_many :deeds
end

class Deed < ActiveRecord::Base
  belongs_to :user  
end

Rails コンソールで、次のエラーが表示されます: ActiveRecord::UnknownAttributeError: unknown attribute: user_id

誰かがこれの何が問題なのか説明してください。助けてくれてありがとう。

4

1 に答える 1

2

Deedモデルに という列が必要ですuser_id。Rails は、アソシエーションを作成するときに (たとえば を介して) 証書が属するユーザーの ID をその列に自動的に取り込みます@deed.user = User.first

それぞれの証書を定義したら、user_id次のようなものを呼び出す@user.deedsと、Rails は「このユーザーの ID と等しい user_id を持つ証書を教えてください」という SQL クエリを実行できます。同様に、 を呼び出すと@deed.user、Rails は「この証書の user_id と等しい ID を持つユーザーを教えてください」という SQL クエリを発行できます。

于 2013-10-23T04:34:22.150 に答える