Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 26th, 2012  |  syntax: None  |  size: 1.72 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. factory girl - Given Project, how to make permissions? Associations?
  2. Users (id)
  3. Project (id, name)
  4. Roles (id, title)
  5. Permissions (user_id, role_id, project_id)
  6.        
  7. Factory.define :user do |user|
  8.   user.fname                  "James"
  9.   user.lname                  "Bond"
  10.   user.email                  "james.bond@intuit.com"
  11.   user.password               "password"
  12.   user.password_confirmation  "password"
  13. end
  14.  
  15. Factory.define :project do |project|
  16.   project.name              "myproject"
  17.   project.private_email     "myproject"
  18.   project.user_id do
  19.     (User.find_by_email('james.bond@intuit.com')).id
  20.   end
  21.   project.instance_id do
  22.     (User.find_by_email('james.bond@intuit.com')).instance_id
  23.   end
  24.  
  25.   project.permissions {|permissions| [permissions.association(:permission)] }
  26.  
  27. end
  28.  
  29.  
  30. Factory.define :permission do |permission|
  31.   permission.role_id         1
  32.   permission.creator_id do
  33.     (User.find_by_email('james.bond@intuit.com')).id
  34.   end  
  35.   permission.user_id do
  36.     (User.find_by_email('james.bond@intuit.com')).id
  37.   end
  38.   permission.project_id do
  39.     (Project.find_by_name('myProject')).id
  40.   end
  41.  
  42.  
  43. end
  44.        
  45. project.user {|i| i.association(:user)}
  46.  
  47.  permission.creator {|i| i.association(:user)}
  48.  permission.project {|i| i.association(:project)}
  49.        
  50. Factory.define :user do |u|
  51.   u.sequence(:email) { |n| "mike#{n}@awesome.com"}
  52.   u.password "funnyguy1"
  53.   u.password_confirmation {|u| u.password }
  54.  end
  55.  
  56. Factory.define :profile do |p|
  57.   p.sequence(:username) { |n| "madmike#{n}"}
  58.   p.user {|i| i.association(:user)}
  59. end
  60.        
  61. Factory.define :permission do |permission|
  62.   permission.role_id         1
  63.   permission.creator {|i| i.association(:user)}
  64.   permission.user {|i| i.association(:user)}
  65.   permission.project {|i| i.association(:project)}
  66. end