だから私は2つのモデルを持っています:
class User < ActiveRecord::Base
has_and_belongs_to_many :followed_courses, :class_name => "Course"
end
class Course < ActiveRecord::Base
has_and_belongs_to_many :followers, :class_name => "User"
end
User.rb には、次のものもあります。
def following_course?(course)
followed_courses.include?(course)
end
def follow_course!(course)
followed_courses<<course
end
def unfollow_course!(course)
followed_courses.delete(course)
end
結合テーブル (courses_users) だけで、courses_users モデルはありません。CoursesController でコースをフォロー/フォロー解除する必要があると思います。コントローラーで新しいアクションを作成しますか?
現在、コースがフォローされていない場合、コース/ショーページにフォローフォームがあります
= form_for @course, :url => { :action => "follow" }, :remote => true do |f|
%div= f.hidden_field :id
.actions= f.submit "Follow"
そして、私は CoursesController に持っています:
def follow
@course = Course.find(params[:id])
current_user.follow_course!(@course)
respond_to do |format|
format.html { redirect_to @course }
format.js
end
end
しかし、それは決して活性化されなかったようです。アクションが有効になるようにルートを変更する必要がありますか? それを変更する方法は?または、これを行うより良い方法はありますか?フォームをリンクだけに置き換えることはできますか? 前もって感謝します!これは、関連するクエスチョンレール ポリモーフィック モデルの実装のフォローアップです。