Ruby on rails 3个模型的轨道关系

Ruby on rails 3个模型的轨道关系,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有3个模型,看起来像这样: class User < ActiveRecord::Base belongs_to :Clan end class Clan < ActiveRecord::Base has_many :users, primary_key: 'id', foreign_key: 'clan_id' belongs_to :clan_lvl end class ClanLvl < ActiveRecord::Base has_one :clan, p

我有3个模型,看起来像这样:

class User < ActiveRecord::Base
 belongs_to :Clan
end

class Clan < ActiveRecord::Base
 has_many :users, primary_key: 'id', foreign_key: 'clan_id'
 belongs_to :clan_lvl
end

class ClanLvl < ActiveRecord::Base
 has_one :clan, primary_key: 'id', foreign_key: 'lvl_id'
end
class用户
Class
User
拥有
clan\u id
和Class
clan
拥有
lvl\u id
,所以我认为我的实现应该是好的

我可以访问诸如
current\u user.clan.something
之类的数据,但是rails似乎无法与第三个模型建立关系,因为
current\u user.clan.clan\u lvl
总是为零

有什么建议吗?

试试这个:

class User < ActiveRecord::Base
 belongs_to :clan
end

class Clan < ActiveRecord::Base
 has_many :users
 belongs_to :clan_lvl, foreign_key: 'lvl_id'
end

class ClanLvl < ActiveRecord::Base
 has_one :clan, foreign_key: 'lvl_id'
end
class用户
您还应该解释模型是如何初始化和保存的,可能是表单中的某些内容。此外,您是否正确设置了强参数权限?模型是使用scaffold生成的,我使用的数据来自seeds 35; Anezio Campos这似乎可行。塔克斯。正如我所看到的,我所需要的是
归属:clan\u lvl,外键:'lvl\u id'
这有什么区别?默认情况下,归属者正在寻找clan\u lvl\u id,但找不到它。你可以在这里了解更多。请把答案也标为正确