Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 避免数据库中的重复数据(用于Rails)_Ruby On Rails_Database Design_Duplicate Data - Fatal编程技术网

Ruby on rails 避免数据库中的重复数据(用于Rails)

Ruby on rails 避免数据库中的重复数据(用于Rails),ruby-on-rails,database-design,duplicate-data,Ruby On Rails,Database Design,Duplicate Data,我有五张桌子,我正努力让它们配合得很好,但可能需要一些帮助 我有三张主要的桌子: 帐目 成员 和角色 有两个连接表 会员帐户 和帐户成员角色 账户和成员表由账户成员(fk账户id和成员id)表连接 其他两个表就是问题所在(角色和帐户成员角色) 一个帐户的成员可以有多个角色,我有一个帐户成员角色(fk帐户成员id和角色id)表连接帐户成员连接表和角色表 这似乎合乎逻辑,但您是否可以与联接表建立关系?我希望能够做的是创建帐户时,例如,我希望@account.save包含角色并整齐地更新帐户\

我有五张桌子,我正努力让它们配合得很好,但可能需要一些帮助

我有三张主要的桌子:

  • 帐目
  • 成员
  • 和角色
有两个连接表

  • 会员帐户
  • 和帐户成员角色
账户成员表由账户成员(fk账户id和成员id)表连接

其他两个表就是问题所在(角色帐户成员角色

一个帐户的成员可以有多个角色,我有一个帐户成员角色(fk帐户成员id和角色id)表连接帐户成员连接表和角色

这似乎合乎逻辑,但您是否可以与联接表建立关系?我希望能够做的是创建帐户时,例如,我希望@account.save包含角色并整齐地更新帐户\成员\角色表。。。。。但是通过帐户\u成员联接表

我试过

accept_nested_attributes_for :members, :account_member_roles
在account.rb中,但我得到

ActiveRecord::HasManyThroughCantAssociateThroughHasManyReflection (Cannot modify association 'Account#account_member_roles' because the source reflection class 'AccountMemberRole' is associated to 'AccountMember' via :has_many.)
在试图保存记录时

我该如何处理这个问题,有什么建议吗

中情局

-蚂蚁

在这里阅读:

一个简单的 _和_属于多个联接表和 a有很多:通过连接模式是什么 联接模型可以具有属性 除了 它正在加入。事实上,如果你 你没有其他的属性吗 可能不会使用联接模型和 将满足于一个联接表


因此,您似乎想使用has_many:到,您将被设置。

如果我读对了,您有:

民政事务局议员帐户

成员habtm账户

成员有许多角色

如果这是正确的,您只需要在帐户和成员之间建立一个联接表,然后在成员和角色之间建立一个常规的FK@account.members和@account.members.roles都可以让您访问所需的属性,@account.save应该可以毫不费力地保存整个混乱


我不知道是什么迫使你拥有这个帐户\成员\角色表。我不知道Rails是否能处理这个问题。我知道我当然不能。:)

我用的有很多:thorugh。可能问题在于,在尝试创建加入模型帐户成员角色之前,尚未创建加入模型帐户成员的主键。这似乎是我真正的问题,我能让连接模型彼此关联吗?我不明白为什么不能,只要你能处理复杂性:)如果Sleepycat描述了正确的问题,我支持这个解决方案。你描述了你如何解决问题,但你没有描述你试图解决的问题@Sleepycat(如下)描述了一个问题。这就是你要解决的问题吗?