Witajcie.
Męczę się nad jednym problemem. Dla uproszczenia przyjmę inne nazwy modeli niż w docelowym projekcie.
Mam modele:
class User < ActiveRecord::Base
has_many :posts, through: :user_posts
has_many :user_posts
end
class Post < ActiveRecord::Base
has_many :users, through: :user_posts
has_many :user_posts
end
class UserPost < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
Model UserPost
ma jeszcze pole role_id
. Chodzi o to, że np. user1
może być autorem posta, a user2
recenzentem. Role userów zależą więc od relacji, dla innych postów te role mogą rozkładać się inaczej. Jak teraz w najefektywniejszy sposób “dobrać się” do informacji, kim dany user jest dla konkretnego postu?
Próbowałem też używać gemu rolify
który umożliwiał coś takiego, ale trzymał wszystkie relacje w jednej tablicy - w docelowym projekcie model User
będzie miał relacje z innymi modelami, w których też te role trzeba będzie uwzględnić - nie wydaje mi się to zbytnio wydajne. Jaki będzie najlepszy sposób na rozwiązanie tego?