Ruby on rails 3个模型的轨道关系
我有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
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用户
ClassUser
拥有clan\u id
和Classclan
拥有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,但找不到它。你可以在这里了解更多。请把答案也标为正确