2つのモデル(ユーザーとコース)と、コースへの登録を可能にするJOINテーブルがあります。
class User < ActiveRecord::Base
has_many :enrollments, :dependent => :destroy
has_many :courses, :through => :enrollments
end
class Course < ActiveRecord::Base
has_many :enrollments, :dependent => :destroy
has_many :users, :through => :enrollments
end
class Enrollment < ActiveRecord::Base
belongs_to :user
belongs_to :course
end
登録JOINテーブルには、成績、完了率などの他の属性があります。ただし、登録以外の属性には、ユーザーからの入力は必要ありません。理想的にはnew_course_enrollment(@course, {:user_id => current_user} )
、バックグラウンドで登録を作成し(ユーザーが何も入力する必要がない)、「登録」リンクを「登録済み」ステータスに置き換えてコースページにリダイレクトするリンクが必要です。デフォルトのRESTfulEnrollments#newコントローラーアクションを変更せずに、モデルでこれを行う方法はありますか?