Frage

An Planung über die Verwendung deklarative Zulassung in einer Rails 3 App. Ich habe folgende Modellbeziehungen:

class Role < ActiveRecord::Base
  has_many :permissions, :dependent => :destroy
  has_many :users, :through => :permissions, :uniq => true  
end

class Permission < ActiveRecord::Base
  belongs_to :user
  belongs_to :role
  belongs_to :context
end

class User < ActiveRecord::Base
  has_many :permissions, :dependent => :destroy
  has_many :roles, :through => :permissions

  roles.map do |role|
      role.name.underscore.to_sym
  end
end

class Context < ActiveRecord::Base
  has_many :contexts, :dependent => :destroy

end

Das Konzept hier ist, dass ich zu segmentieren verschiedene Datensätze in unterschiedlichen Kontexten werde. Jedoch kann ein bestimmte Benutzer für jeden Kontext unterschiedliche Rollen hat - vielleicht einen Admin in einem Kontext und ein basisches Benutzer in einem anderen. Ich habe current_user und current_context für den Einsatz in Steuerungen und Ansichten umgesetzt werden.

Ich plane, die if_attribute auf mit der rechten Erlaubnis auf dem richtigen Datensatz zu verweisen. Allerdings ist die Frage, wie kann ich die def role_symbols nur die Rollen mit dem Benutzer in einem bestimmten Kontext zugeordnet zurückkehren, wenn ich kann nicht / nicht sollte Referenz current_context in einem Modell (wo role_symbols definiert ist).

Irgendwelche Ideen?

War es hilfreich?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top