#ruby-on-rails #models #belongs-to
#ruby-on-rails #Модели #принадлежит-к
Вопрос:
Ситуация такова..
class Organization < ActiveRecord::Base
has_many :role_memberships
has_many :roles
has_many :users, :through => :role_memberships, :uniq => true
end
class User
has_many :role_memberships
has_many :organizations, :through => :role_memberships, :uniq => true
has_many :roles, :through => :role_memberships, :uniq => true
end
class RoleMembership < ActiveRecord::Base
belongs_to :organization
belongs_to :role
belongs_to :user
end
class Role < ActiveRecord::Base
belongs_to :organization
has_many :role_memberships
has_many :users, :through => :role_memberships, :uniq => true
end
ВОПРОС в том, как мне заполнить все три внешних ключа в таблице rolemembership..когда я выполняю org.users.push(u), создается запись, но role_id не учитывается…
Ответ №1:
В этом случае я, вероятно, создам сам объект RoleMembership, например:
RoleMembership.create(:organization_id => org.id, :role_id => role.id, :user_id => user.id)
Комментарии:
1. Спасибо за ответ. Вы имеете в виду, что мы должны явно заполнить таблицу rolememembership?
2. да, это самый простой способ для этого, и, честно говоря, я не могу найти никакого «rails way», чтобы сделать это по-другому. PS пожалуйста, не забудьте принять ответ, если он вам помог 😉