【发布时间】:2017-05-25 11:08:13
【问题描述】:
在我的应用程序中,我有 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" = ?
为什么我无法查找与用户相关的频段?
【问题讨论】:
-
尝试将
belongs_to :band_manager, class_name: "User"更改为belongs_to :band_manager, class_name: "User", foreign_key: "band_manager_id"
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord