Rails关系数据库



我正在构建一个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页面上的加入按钮时,它会将它们添加到学生数据库中。我想我可以做一个<%=link_to"+加入",….,:method=>:沿着这些线发布%>一些东西,但我不确定路径是什么以及从那里去哪里。我需要控制器接受current_user.id的参数,并且由于我正在组中循环,group.id

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

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

如果你确实想在关系中使用学生模型,请转到has_many :through部分,但听起来并不是你想要的。但要知道,当涉及到铁路中的关联时,有很多选择,所以一定要浏览一下这些部分,找到你认为想要的类型。

最新更新