У меня есть следующие модели
class Project < ActiveRecord::Base
has_many :project_members
has_many :members, :through => :project_members, :uniq => true,:class_name => "User", :source => :user
has_many :admins, :through => :project_members, :uniq => true, :conditions => ['project_members.admin = ?', true], :class_name => "User", :source => :user
end
class User < ActiveRecord::Base
# References
has_many :project_members
has_many :projects, :through => :project_members
end
и таблица соединений
class ProjectMember < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
Кажется, что отношения работают, но когда я хочу добавить администратора в проект через этот код
project.admins.push(u)
project.save
(где u - Пользователь) сохраняет новые отношения, но без установки значения admin в true в таблице объединения.
Даже если я получу это отношение из проекта и вручную установлю для администратора значение true, выполнив
project.project_members.first.admin = true
и сохранение проекта не приводит к обновлению атрибута в таблице.
Что я делаю не так? (Пожалуйста, имейте в виду, что я абсолютный новичок с рубином и рельсами)
Последние часы я гуглил, чтобы найти решение, но ничего не смог найти: /