我有一个用户模型,以及两个继承自该模型的模型:教师和学生。它们还有自己的控制器,可以从用户控制器继承。
我也有一个群组模型。
小组属于老师,老师有很多小组。小组拥有并且属于许多学生。学生拥有并属于许多团体。
有一个HABTM关系的连接表,称为“groups_students”。
我设法创建了一个表单元素,允许我将User的'type'设置为'Student'或'Teacher'。
我现在遇到的困难是将学生分配到视图中的小组。我可以在控制台中执行此操作没有问题,如下所述:Rails 4 HABTM how to set multiple ids in console?
我对如何在视图中执行此操作感到难过。我想在学生的节目视图中这样做。
有人至少可以给我一些指导吗?我有一本关于Rails的好书,但我需要大致了解我必须做的事情。
答案 0 :(得分:0)
最后我实际上付钱给别人为我解决了这个问题,因为我无法在互联网上找到任何免费帮助。值得庆幸的是,他并没有太容易解决问题,但他解决了这个问题:
视图/用户/ show.html.erb:
<%= form_tag assign_to_group_path do %>
<%= hidden_field_tag :user_id, @user.id %>
<%= select_tag :group_id, options_from_collection_for_select(Group.all, "id", "title") %>
<%= submit_tag "Assign to Class" %>
<% end %>
users_controller.rb:
private
def user_params
params[:user].permit(:type) if params[:user]
end
students_controller.rb(继承自users_controller.rb):
def assign_to_group
@user = User.find(params[:user_id])
@group = Group.find(params[:group_id])
@user.groups << @group unless @user.groups.include? @group
@user.save!
redirect_to user_path @user
end
routes.rb中:
post 'assign_to_group' => 'students#assign_to_group'