У меня есть потребность в моем приложении, чтобы пользователи могли добавлять сообщения в закладки. Они должны иметь возможность создавать только одну закладку на сообщение. Я настроил свою полиморфную ассоциацию так:
class Post < ActiveRecord::Base
has_many :bookmarks, :as => :bookmarkable
end
class Bookmark < ActiveRecord::Base
belongs_to :bookmarkable, :polymorphic => true
belongs_to :user
end
class User < ActiveRecord:Base
has_many :posts
has_many :bookmarks
end
На мой взгляд, пользователь может создать закладку. Я хотел бы найти способ заменить код просмотра «Создать закладку» кодом «Удалить закладку», если пользователь уже добавил в закладки определенный пост.
Если я попытаюсь сделать что-то вроде этого:
@post = Post.find(params[:id, :include => [:bookmarks]])
- if @post.bookmarks.users.include?(@user)
Я получаю ошибку «Нет метода» для «пользователей».
Как я могу получить доступ к владельцам закладок, чтобы определить, добавил ли текущий пользователь страницу в закладки?
Спасибо.