Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 是有并属于许多合适的_Ruby On Rails_Devise_Cancan - Fatal编程技术网

Ruby on rails 是有并属于许多合适的

Ruby on rails 是有并属于许多合适的,ruby-on-rails,devise,cancan,Ruby On Rails,Devise,Cancan,我是这个网站的新手,期待更多的参与:) 我正在使用rails3、Desive、cancan等创建一个客户订购系统 简言之,我们有三种模型: 使用者 公司 命令 不过,我很难理解这种关系。最初,用户有许多公司,这些公司属于一个用户 然而,我们实际上有两类用户: 这里的管理人员可以创建公司、更新详细信息等 我们的客户可以登录并仅查看其公司和相关订单 我曾考虑过创建两个控制器——管理员和用户,但这似乎是不必要的,而且不太适合rails。加上坎坎可以做到我想的一切 你认为我们应该在这里做什么?我们曾考虑

我是这个网站的新手,期待更多的参与:)

我正在使用rails3、Desive、cancan等创建一个客户订购系统

简言之,我们有三种模型:

  • 使用者
  • 公司
  • 命令
  • 不过,我很难理解这种关系。最初,用户有许多公司,这些公司属于一个用户

    然而,我们实际上有两类用户:

  • 这里的管理人员可以创建公司、更新详细信息等
  • 我们的客户可以登录并仅查看其公司和相关订单 我曾考虑过创建两个控制器——管理员和用户,但这似乎是不必要的,而且不太适合rails。加上坎坎可以做到我想的一切

    你认为我们应该在这里做什么?我们曾考虑使用has_和(你属于)(你属于)(你属于)(你属于)(你属于)的关系(has)和40

    谢谢

    珍妮

    ---编辑---

    感谢你们所有的帮助

    经过一番阅读,我决定通过联想使用has-many

    我创建了一个名为“协议”的新模型,并按如下方式设置了我的模型:

    class User < ActiveRecord::Base
      has_many :agreements
      has_many :companies, :through => :agreements
    end
    
    
    class Company < ActiveRecord::Base
      has_many :agreements
      has_many :users, :through => :agreements
    end
    
    class用户:协议
    结束
    类公司:协议
    结束
    
    但我有点困了,在网上找不到好的例子

    我应该分别创建一个用户和一个公司,然后创建一个协议来匹配这两者吗


    再次感谢大家的帮助。

    您可以使用has\u many:through。似乎应用程序在未来肯定需要一些持续的更改。因此,在这种情况下,它将非常有用 如有疑问,请答复


    Thanx

    首先,你需要知道你真正想要实现的目标,了解关系以及关系的样子。在纸上画一些实体关系模型,这很有帮助

    就个人而言,我更喜欢用户has_many:through,因为如果您需要为该关系存储额外数据(扩展应用程序时可能会出现这种情况),您已经设置好了,不需要将表和模型从habtm迁移到has_many:through


    对于用户权限,请坚持cancan

    根据描述,您似乎有:

  • 使用者
  • 顾客
  • 公司
  • 命令
  • 管理员是具有角色的用户,允许他们访问公司的创建、更新。客户属于公司,也可能是“用户”,具体取决于您在用户模型中存储的信息

    至于HABTM,如果您不在join表中添加额外的数据,那么仍然可以使用它。通常情况下,联接表中会有一些信息,因为它为联接提供了额外的上下文


    示例数据模型的一个很好的资源,关于实体和关系的一些想法是

    Hi,habtm似乎可以工作,但我并不真正想要一个包含公司信息的联接表。。。看起来不错,但是有很多看起来更整洁。只是不确定在我的场景中它会如何工作。。这就是它的要点。谢谢,我会通读图书馆的。。JI同意您可以从另一种模式中受益。也许您可以拥有一个管理模型,其中包含每个需要管理权限的用户的记录。和上面的其他人一样,我更喜欢使用has_many:through.谢谢,刚刚编辑了我的第一个问题。我认为这是最好的。已设置,但我现在有点卡住了!!嗨,谢谢。如果用户有很多公司,公司有很多用户,我如何使用“通过”-他们似乎是直接连接的?JB@jenny您可以直接使用,如果您想增加任何属性,它也会有所帮助。看一看,这会让你更清醒,对这一切都是陌生的?!是这样吗??!我将尝试使用has_许多:通过关联。不过还是有点卡住了,在原文中发表了一些评论。Jclass Agreement