【问题标题】:Rails relational databaseRails 关系数据库
【发布时间】:2014-10-10 01:32:30
【问题描述】:

我正在构建一个 Rails 应用程序,但我开始陷入困境。我有一个名为组的模型,我希望用户能够加入该组。组方面正在工作,我可以为组创建、删除、编辑等,并且用户部分正在工作。我卡住的地方是用户和组之间的连接。我运行了这个命令:

rails g resource Student student_id:integer course_id:integer

创建关系数据库,以便用户可以加入群组并成为学生。这些是我为学生准备的路线:

              Prefix Verb   URI Pattern                    Controller#Action
            students GET    /students(.:format)            students#index
                     POST   /students(.:format)            students#create
         new_student GET    /students/new(.:format)        students#new
        edit_student GET    /students/:id/edit(.:format)   students#edit
             student GET    /students/:id(.:format)        students#show
                     PATCH  /students/:id(.:format)        students#update
                     PUT    /students/:id(.:format)        students#update
                     DELETE /students/:id(.:format)        students#destroy

我将如何使用学生模型将用户添加到组中。当用户查看组的视图(索引)页面时,有一个加入按钮,所以我希望它是当用户单击 /views/groups/index.html.erb 页面上的加入按钮时,它将添加到学生数据库。我想我可以按照这些思路做一个 :post %> ,但我不确定路径是什么以及从那里去哪里。我需要控制器接受 current_user.id 的参数,因为我正在循环组,group.id

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    听起来您只是想在用户和组之间建立关系。在rails中,你不需要设置表来表示关系,而是一个关联。在这里阅读:http://guides.rubyonrails.org/association_basics.html

    对于一个用户只能属于一个组的更简单的情况,我们会说一个用户belongs_to :group,一个组has_many :users。通过将这些线放置在相应的模型中,您基本上已经建立了连接。 Rails 会自动为任何用户记录创建一个.group 方法,为任何组创建一个.users 方法。仅仅这些简单的行还有很多事情发生,所以请阅读 Rails 指南。

    如果您确实想对关系使用 Student 模型,请转到 has_many :through 部分,但这听起来并不是您想要的。但是要知道,在 Rails 中的关联方面有很多选择,因此请务必浏览各个部分以找到您认为想要的那种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多