在我的应用中,我有Users
和Bands
。 User
可以创建Band
,因此在数据库架构中,表Band
具有引用band_manager_id
表的外键User
。
模型是:
class Band < ApplicationRecord
belongs_to :band_manager, class_name: "User"
end
class User < ApplicationRecord
has_many :bands, dependent: :destroy
end
在乐队控制器中,我有一个索引方法:
def index
@bands = current_user.bands
end
在views / band / index
中<ol>
<% @bands.each do |b| %>
<%= u.name %>
<% end %>
<ol>
当我渲染乐队/索引页面时,Rails给了我这个错误:
SQLite3::SQLException: no such column: bands.user_id: SELECT "bands".* FROM "bands" WHERE "bands"."user_id" = ?
为什么我无法查找与用户相关的乐队?
答案 0 :(得分:2)
尝试在foreign_key
关联中明确设置bands
:
class User < ApplicationRecord
has_many :bands, dependent: :destroy, foreign_key: 'band_manager_id'
end