All pastes #205273 Raw Edit

Unnamed

public ruby v1 · immutable
#205273 ·published 2006-10-16 18:01 UTC
rendered paste body
File <| (owner == root or owner == bin) and group == sysadmin |>Given, tables:   RailsResources, <RailsMap>, RailsParameters((RailsParameters.value = 'root' and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = 'owner' and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File') OR (RailsParameters.value = 'bin' and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = 'owner' and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File'))and(RailsParameters.value = 'sysadmin' and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = 'group' and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File'))------((RailsParameters.value = ? and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = ? and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File') OR (RailsParameters.value = 'bin' and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = 'owner' and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File'))and(RailsParameters.value = 'sysadmin' and   RailsParameters.map_id = RailsMap.id and  RailsMap.key = 'group' and   RailsMap.resource_id = RailsResources.id and  RailsResources.type = 'File'))a = [ 'root', 'owner', .... ]Resource.find_by_sql([ c, a ])c = "select Resources.* from Resources, RailsParameters, RailsMap, RailsResources where "c << ...a << ...Resource.find_by_sql([ c, a ])RailsParameters: id => :integer map_id => :integer (foreign key into RailsMap) value => :stringRailsMap: id => :integer resource_id => :integer (foreign key into RailsResources) key => :string   (e.g., "owner")RailsResources: id => :integer type => :string (the "Resource class", e.g., 'File') ....  (whatever other stuff you've already got)class RailsResource < ActiveRecord::Base  has_many :rails_mapsendclass RailsMap < ActiveRecord::Base  belongs_to :rails_resource  has_many :rails_parametersend---------------------------Resource.find(:all, :conditions => [c, a])