繁体   English   中英

Ruby on rails关联不起作用

[英]Ruby on rails associations not working

我有两个文件。

clans.rb

class Clans < ActiveRecord::Base
  belongs_to :User
end

user.rb

class User < ActiveRecord::Base
  has_one :Clan
end

我还有两个mysql表。

氏族: id | 名字| 前缀| 描述| 用户身份

用户: id | 用户名| 密码| 电子邮件| bindcode

clans.user_id是部落领袖的users.id。

在我的代码中,我可以在show.html.erb中使用以下内容,它为我提供了部落名称。

<%= Clans.find(params[:id]).name %>

但我希望能够做到:Clans.find(params [:id])。leader。(用户字段)示例:

<%= Clans.find(params[:id]).leader.username %>

我怎样才能做到这一点?

class Clan < ActiveRecord::Base
  belongs_to :leader, :class_name => "User", :foreign_key => "user_id"
end

class User < ActiveRecord::Base
  has_one :clan
end

注意类从Clans变为Clan ,关联从has_one :Clan变为has_one :clan

有两种方法可以实现这一目标:

belongs_to :leader, :class_name=>"User", :foreign_key=>"user_id"

要么

belongs_to :user
delegate :leader, :to=>:user

注意:后一版本仍然允许你做clan.user ,以及clan.leader

belongs_to :user not belongs_to :User

Clans相同的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM