Ruby on rails 如何从不同的模型HTML页面添加到表中?

Ruby on rails 如何从不同的模型HTML页面添加到表中?,ruby-on-rails,Ruby On Rails,我不熟悉rails。我有一个表TeamMemberships,它有一个指向Students的外键和一个指向Teams的外键。我希望能够在特定团队的show.html.erb页面中有一个链接,该链接重定向到一个表单,该表单允许我向TeamMemberships添加一行,其中team外键是其show.html.erb页面上单击链接并确定Student外键的团队按表格。这可能吗? 谢谢 在routes.rb文件中添加新资源,如下所示: Rails.application.routes.draw do

我不熟悉rails。我有一个表
TeamMemberships
,它有一个指向
Students
的外键和一个指向
Teams
的外键。我希望能够在特定团队的
show.html.erb
页面中有一个链接,该链接重定向到一个表单,该表单允许我向
TeamMemberships
添加一行,其中
team
外键是其
show.html.erb
页面上单击链接并确定
Student
外键的团队按表格。这可能吗?
谢谢

routes.rb文件中添加新资源,如下所示:

Rails.application.routes.draw do
资源:团队可以
资源:团队成员
结束
结束
这将创建CRUD路由:

      team_team_memberships GET    /teams/:team_id/team_memberships(.:format)                        team_memberships#index
                            POST   /teams/:team_id/team_memberships(.:format)                        team_memberships#create
   new_team_team_membership GET    /teams/:team_id/team_memberships/new(.:format)                    team_memberships#new
  edit_team_team_membership GET    /teams/:team_id/team_memberships/:id/edit(.:format)               team_memberships#edit
       team_team_membership GET    /teams/:team_id/team_memberships/:id(.:format)                    team_memberships#show
                            PATCH  /teams/:team_id/team_memberships/:id(.:format)                    team_memberships#update
                            PUT    /teams/:team_id/team_memberships/:id(.:format)                    team_memberships#update
                            DELETE /teams/:team_id/team_memberships/:id(.:format)                    team_memberships#destroy
这里您感兴趣的是
new\u team\u team\u memberships GET/teams/:team\u id/team\u memberships/new(:format)
,您可以使用命名路径
new\u team\u team\u memberships
调用它。 您将能够通过
new\u team\u team\u membership\u路径(@team.ID)
传递要为其创建
TeamMembership的团队ID\
关于
学生id
,您将在HTTP POST请求正文中传递它

以下是如何创建从团队展示页面到团队成员表单的链接:

<%= link_to 'Add a student', new_team_team_membership_path(@team.id) %>
然后,您必须创建
app/views/team\u memberships/
文件夹,并使用以下表单添加
new.html.erb
文件:

<%= form_for @new_team_membership do |f| %>
  <%= f.select :student_id, options_for_select(@students.collect{ |student| [student.name, student.id]) %>
  <%= f.submit %>
<% end %>

如何修改
create
操作,使其接收这些参数?当我按原样使用它时,我得到一个错误,说“团队成员身份中的NoMethodError”#创建:未定义的方法“collect”for nil:NilClass“use
f.collection\u select:student\u id,student.all,:id,:name
而不是较低级别的
select
helper”。你不会因为做得很辛苦而得到额外的分数。@宇航22我添加了一个
创建
动作的例子。如果有帮助,请告诉我。