Rails: has_many БЕЗ принадлежности_к

В настоящее время я работаю с RoR, следуя некоторым книгам и учебникам, и это работает довольно хорошо. Но теперь мне нужно реализовать что-то, для чего я не нахожу ресурсов, и мне нужна небольшая помощь. Вот что я хочу сделать: у меня есть приложение, в которое люди могут входить и просматривать информацию, поэтому у меня есть таблица базы данных с именем users, что говорит само за себя. Кроме того, у меня есть таблица user_rights, каждая из которых имеет идентификатор, имя и описание. Идея сейчас в том, что каждый пользователь может иметь несколько прав, дающих ему доступ к разным частям приложения. Таким образом:

class User < ActiveRecord::Base
  attr_accessible :name, :password_digest, :password, :account_nr, :password_confirmation, :email
  has_many :scope
  validates :name, presence: true, uniqueness: true
  validates :account_nr, presence: true
  validates :email, :presence => true
  has_secure_password
end

и:

class Scope < ActiveRecord::Base
  attr_accessible :name, :description
end

Я не хочу иметь отношения belongs_to. Я просто хочу небольшую таблицу с правами пользователей и дать каждому пользователю пару из них. Но, к сожалению, я совершенно не знаю, как поступить! Может ли кто-нибудь дать мне несколько советов?


person user1734861    schedule 12.10.2012    source источник


Ответы (2)


Похоже, вам нужна ассоциация many-to-many, например: у пользователя может быть несколько права, и одно право может быть назначено многим пользователям.

person ABrukish    schedule 12.10.2012
comment
Это именно то, что мне нужно! Спасибо, этого достаточно, чтобы держать меня в движении! - person user1734861; 12.10.2012
comment
Также см. раздел о RailsGuides: guides.rubyonrails .org/ - person Dennis; 23.04.2016

Я полагаю, что то, что вы пытаетесь сделать, называется авторизацией (о чем вы, возможно, уже знаете). Если вы пишете собственное решение, я думаю, есть большая вероятность, что вы заново изобретаете велосипед.

Я бы порекомендовал потратить некоторое время на CanCan, плагин авторизации Rails, написанный RailsCasts. парень, чтобы увидеть, соответствует ли это вашим потребностям.

person Jason Swett    schedule 12.10.2012
comment
Привет! Я действительно заново изобретаю велосипед, но я думаю, что этому необходимо научиться. Спасибо за ссылку, я проверю это, но сначала попробую сделать это без плагина, чтобы узнать, как все работает :) - person user1734861; 12.10.2012