ユーザーがコースに登録できるようにボタンを作成したいと思います。登録モデルはユーザーとコースに属し、登録を追跡する必要があります。
コースページにボタンフォームとして次のコードを表示しています(問題ないようです):
<% @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
ボタンをクリックすると、次のエラー メッセージが表示されます。
ActiveRecord::EnrollingsController#create の RecordNotFound
ID のないコースが見つかりませんでした
フォームで course_id を渡さないのはなぜですか? コントローラーを正しくセットアップするにはどうすればよいですか?