Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR-显示与外键链接的模型_Ruby On Rails_Ruby On Rails 4_Rails Activerecord - Fatal编程技术网

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