我的數據模型:的Rails 3級協會
- 集合屬於用戶。
- 收藏有很多藝術。
- 藝術屬於收藏品。
Rails的模型:
class User < ApplicationRecord
end
class Collection < ApplicationRecord
has_many :arts
belongs_to :user
end
class Art < ApplicationRecord
belongs_to :collection
end
問題代碼:
def index
@arts = Art.where(:user => current_user)
end
錯誤消息:
SQLite3::SQLException: no such column: arts.user: SELECT "arts".* FROM "arts" WHERE "arts"."user" = 1
我已經添加了art_id
和user_id
到收藏表作爲索引並運行rake db:migrate
。
我也試過
has_many :arts, :through => :collections
在用戶模式,但仍然得到了錯誤。
這是對數據模型的根本性改變,也是不必要的改變。沒有必要爲'Art'添加冗餘'user_id'。 – meagar