我正在使用用户、学校和学校组模型构建一个社交网站。用户通过 has_many 到 schoolgroups 加入学校,并在学校中扮演不同的角色。我在编写用户可以单击以申请学校的在线 form_for 按钮时遇到问题。创建 schoolgroup 对象时需要包含的参数是 user_id、school_id 和角色“申请人”。我知道我可以使用 current_user.schoolgroups.build 让表单初始化创建操作并包含正确的 user_id,但我遇到的问题是如何编写一个表单,将 school_id 发送到控制器以创建新的 schoolgroup 对象. 我的代码中的 @school 实例变量只是正确代码的占位符
def create
@school = School.find(params[:schoolgroups][:school_id)
current_user.schoolgroups.build(school_id: @school.id, user_id: current_user.id, role: 'applicant')
respond_with school_path
end
<%= form_for( current_user.schoolgroups.build(params[school_id: @school.id]),
remote: true) do |f| %>
<div><%= f.hidden_field :school_id %></div>
<%= f.submit "Apply", class: "btn btn-large btn-primary" %>
<% end %>