0

このように1つのモデルが構築されたレールアプリがあります

class Forum::Thread < ActiveRecord::Base
  belongs_to :forum
  belongs_to :user
  attr_accessible :body, :title

  has_many :comments, dependent: :destroy
end

userある時点で、それは適切な名前ではないことに気付いたので、に変更しましたauthor

class Forum::Thread < ActiveRecord::Base
  belongs_to :forum
  belongs_to :author, class_name: 'User'
  attr_accessible :body, :title

  has_many :comments, dependent: :destroy
end

また、user私は次のものを持っています:

has_many :forum_threads, class_name: 'Forum::Thread', inverse_of: :author

しかし、スレッドのリスト (@user.forum_threadsたとえば ) をフェッチしようとすると、レールuser_idは新しい ではなく古いものを参照するクエリを作成しているようauthor_idです。

 Showing /home/giladnaaman/Programming/Eclipse/Hephaestus/app/views/users/show.html.erb where line #40 raised:

SQLite3::SQLException: no such column: forum_threads.user_id: SELECT COUNT(*) FROM "forum_threads"  WHERE "forum_threads"."user_id" = 1

Extracted source (around line #40):

37:                         # of Threads
38:                     </dt>
39:                     <dd>
40:                         <%= @user.forum_threads.count%> <%= link_to 'watch', '#', class: 'btn btn-mini pull-right'%>
41:                     </dd>
42:                     <br />
43:                     <dt>

これを修正するにはどうすればよいですか?

4

2 に答える 2

1

おそらく、外部キーを使用する必要があります。外部キーとは、「user_id」を意味します

于 2013-04-21T13:55:21.290 に答える