我正在构建一个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
部分,但听起来并不是你想要的。但要知道,当涉及到铁路中的关联时,有很多选择,所以一定要浏览一下这些部分,找到你认为想要的类型。