我想创建一个按钮,以便用户可以注册课程。注册模型属于用户和课程,应该跟踪注册。
我在课程页面上以按钮形式显示以下代码(看起来不错):
<% @enroll = current_user.enrollings.build(course_id: @course.id) %>
<%= form_for(@enroll) do |f| %>
<div><%= f.hidden_field :course_id %></div>
<%= f.submit "Enroll", class: "btn btn-large btn-primary" %>
<% end %>
我有一个用于注册的资源路线,当用户单击该按钮时,该页面将转到 /enrollings。
这是注册控制器中的代码:
def create
@course = Course.find(params[:course_id])
current_user.enroll!(@course)
end
当我单击按钮时,我收到以下错误消息:
EnrollingsController#create 中的 ActiveRecord::RecordNotFound
找不到没有 ID 的课程
为什么它不通过表单传递 course_id?如何正确设置控制器?