Ruby on rails RoR-显示与外键链接的模型
在我的应用程序中,我有Ruby on rails RoR-显示与外键链接的模型,ruby-on-rails,ruby-on-rails-4,rails-activerecord,Ruby On Rails,Ruby On Rails 4,Rails Activerecord,在我的应用程序中,我有用户和乐队。User可以创建一个Band,因此在数据库架构中,表Band有一个外键Band\u manager\u id引用了User表 这些模型是: class Band < ApplicationRecord belongs_to :band_manager, class_name: "User" end class User < ApplicationRecord has_many :bands, dependent: :destroy end
用户
和乐队
。User
可以创建一个Band
,因此在数据库架构中,表Band
有一个外键Band\u manager\u id
引用了User
表
这些模型是:
class Band < ApplicationRecord
belongs_to :band_manager, class_name: "User"
end
class User < ApplicationRecord
has_many :bands, dependent: :destroy
end
和在视图/波段/索引中
<ol>
<% @bands.each do |b| %>
<%= u.name %>
<% end %>
<ol>
为什么我无法查找与用户相关的波段?请尝试在
波段
关联中显式设置外键
:
class User < ApplicationRecord
has_many :bands, dependent: :destroy, foreign_key: 'band_manager_id'
end
class用户
尝试将所属更改为:波段管理器,类别名称:“用户”
更改为所属:波段管理器,类别名称:“用户”,外键:“波段管理器id”
谢谢!这对我来说是可行的,但我不明白为什么我必须在模型中指定外键,因为它有很多关联?默认情况下,Rails建议从模型名称中指定一个外键列。在您的示例中,它将是user\u id
,因为模型的名称是user
。
SQLite3::SQLException: no such column: bands.user_id: SELECT "bands".* FROM "bands" WHERE "bands"."user_id" = ?
class User < ApplicationRecord
has_many :bands, dependent: :destroy, foreign_key: 'band_manager_id'
end