Skip to content

Instantly share code, notes, and snippets.

@pbonnell
Created February 3, 2011 19:58
Show Gist options
  • Save pbonnell/810080 to your computer and use it in GitHub Desktop.
Save pbonnell/810080 to your computer and use it in GitHub Desktop.
code runs fine in console, FAILS to update inside a migration
# drop this on console :
@new_names = {
"1" => {:label => "super_admin",:nicename => "Super Admin"},
"2" => {:label => "admin", :nicename => 'Admin'},
"3" => {:label => 'editor' , :nicename=>'Editor'},
"4" => {:label => 'columnist', :nicename => "Columnist"},
"5" =>{:label => 'guest', :nicename => "Guest"}
}
@new_modules = {
"super_admin" => ['dashboard', 'write', 'content', 'feedback', 'themes', 'sidebar', 'users', 'settings', 'profile'] ,
"admin" => ['dashboard', 'write', 'content', 'feedback', 'profile','settings', 'users'] ,
"columnist" => ['dashboard', 'write', 'content', 'profile'],
"editor" => ['dashboard', 'write', 'content', 'feedback', 'profile'],
"guest" => []
}
ActiveRecord::Base.connection.execute("TRUNCATE profiles")
# Profile.delete_all
@new_names.each_pair do |key,val|
full_attributes = {:id => key}.merge(val)
Profile.create(full_attributes)
end
Profile.all.each do |profile|
puts "------TRY WITH SETTING THE ATTRIBUTE :"
new_modules = @new_modules["#{profile.label}"]
puts "SETTING #{profile.label}(#{profile.id}) modules to : #{new_modules.to_yaml}"
profile.modules=new_modules
puts "#{profile.label}(#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
puts "SAVING (save(false))"
puts "save result is : #{profile.save(false)}"
puts "-- AFTER SAVE: #{profile.label} (#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
profile.reload
puts "-- AFTER RELOAD: #{profile.label} (#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
end
Profile.all.each do |profile|
puts "------TRY WITH update_attributes :"
new_modules = @new_modules["#{profile.label}"]
puts "UPDATING #{profile.label}(#{profile.id}) modules to : #{new_modules.to_yaml}"
profile.update_attributes (:modules => new_modules)
puts "#{profile.label}(#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
# puts "SAVING (save)"
# puts "save result is : #{profile.save}"
puts "-- AFTER update_attributes: #{profile.label} (#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
profile.reload
puts "-- AFTER update/RELOAD: #{profile.label} (#{profile.id}) AR modules NOw = #{profile.modules.to_yaml}"
end
------TRY WITH SETTING THE ATTRIBUTE :
SETTING super_admin(1) modules to : ---
- dashboard
- write
- content
- feedback
- themes
- sidebar
- users
- settings
- profile
super_admin(1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
SAVING (save(false))
save result is : true
-- AFTER SAVE: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER RELOAD: super_admin (1) AR modules NOw = --- []
SETTING admin(2) modules to : ---
- dashboard
- write
- content
- feedback
- profile
- settings
- users
admin(2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
SAVING (save(false))
save result is : true
-- AFTER SAVE: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER RELOAD: admin (2) AR modules NOw = --- []
SETTING editor(3) modules to : ---
- :dashboard
- :write
- :content
- :feedback
- :profile
editor(3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
SAVING (save(false))
save result is : true
-- AFTER SAVE: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER RELOAD: editor (3) AR modules NOw = --- []
SETTING columnist(4) modules to : ---
- dashboard
- write
- content
- profile
columnist(4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
SAVING (save(false))
save result is : true
-- AFTER SAVE: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER RELOAD: columnist (4) AR modules NOw = --- []
SETTING guest(5) modules to : --- []
guest(5) AR modules NOw = --- []
SAVING (save(false))
save result is : true
-- AFTER SAVE: guest (5) AR modules NOw = --- []
-- AFTER RELOAD: guest (5) AR modules NOw = --- []
------TRY WITH update_attributes :
UPDATING super_admin(1) modules to : ---
- dashboard
- write
- content
- feedback
- themes
- sidebar
- users
- settings
- profile
super_admin(1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER update_attributes: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER update/RELOAD: super_admin (1) AR modules NOw = --- []
UPDATING admin(2) modules to : ---
- dashboard
- write
- content
- feedback
- profile
- settings
- users
admin(2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER update_attributes: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER update/RELOAD: admin (2) AR modules NOw = --- []
UPDATING editor(3) modules to : ---
- :dashboard
- :write
- :content
- :feedback
- :profile
editor(3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER update_attributes: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER update/RELOAD: editor (3) AR modules NOw = --- []
UPDATING columnist(4) modules to : ---
- dashboard
- write
- content
- profile
columnist(4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER update_attributes: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER update/RELOAD: columnist (4) AR modules NOw = --- []
UPDATING guest(5) modules to : --- []
guest(5) AR modules NOw = --- []
-- AFTER update_attributes: guest (5) AR modules NOw = --- []
-- AFTER update/RELOAD: guest (5) AR modules NOw = --- []
SUCK!
------TRY WITH SETTING THE ATTRIBUTE :
SETTING super_admin(1) modules to : ---
- dashboard
- write
- content
- feedback
- themes
- sidebar
- users
- settings
- profile
super_admin(1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
SAVING (save)
save result is : true
-- AFTER SAVE: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER RELOAD: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
------TRY WITH SETTING THE ATTRIBUTE :
SETTING admin(2) modules to : ---
- dashboard
- write
- content
- feedback
- profile
- settings
- users
admin(2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
SAVING (save)
save result is : true
-- AFTER SAVE: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER RELOAD: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
------TRY WITH SETTING THE ATTRIBUTE :
SETTING editor(3) modules to : ---
- dashboard
- write
- content
- feedback
- profile
editor(3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
SAVING (save)
save result is : true
-- AFTER SAVE: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER RELOAD: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
------TRY WITH SETTING THE ATTRIBUTE :
SETTING columnist(4) modules to : ---
- dashboard
- write
- content
- profile
columnist(4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
SAVING (save)
save result is : true
-- AFTER SAVE: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER RELOAD: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
------TRY WITH SETTING THE ATTRIBUTE :
SETTING guest(5) modules to : --- []
guest(5) AR modules NOw = --- []
SAVING (save)
save result is : true
-- AFTER SAVE: guest (5) AR modules NOw = --- []
-- AFTER RELOAD: guest (5) AR modules NOw = --- []
+----+-------------+-------------+--------------------------------------------------------------------------------+
| id | label | nicename | modules |
+----+-------------+-------------+--------------------------------------------------------------------------------+
| 1 | super_admin | Super Admin | dashboard, write, content, feedback, themes, sidebar, users, settings, profile |
| 2 | admin | Admin | dashboard, write, content, feedback, profile, settings, users |
| 3 | editor | Editor | dashboard, write, content, feedback, profile |
| 4 | columnist | Columnist | dashboard, write, content, profile |
| 5 | guest | Guest | |
+----+-------------+-------------+--------------------------------------------------------------------------------+
------TRY WITH update_attributes :
UPDATING super_admin(1) modules to : ---
- dashboard
- write
- content
- feedback
- themes
- sidebar
- users
- settings
- profile
super_admin(1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER update_attributes: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
-- AFTER update/RELOAD: super_admin (1) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :themes
- :sidebar
- :users
- :settings
- :profile
------TRY WITH update_attributes :
UPDATING admin(2) modules to : ---
- dashboard
- write
- content
- feedback
- profile
- settings
- users
admin(2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER update_attributes: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
-- AFTER update/RELOAD: admin (2) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
- :settings
- :users
------TRY WITH update_attributes :
UPDATING editor(3) modules to : ---
- dashboard
- write
- content
- feedback
- profile
editor(3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER update_attributes: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
-- AFTER update/RELOAD: editor (3) AR modules NOw = ---
- :dashboard
- :write
- :content
- :feedback
- :profile
------TRY WITH update_attributes :
UPDATING columnist(4) modules to : ---
- dashboard
- write
- content
- profile
columnist(4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER update_attributes: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
-- AFTER update/RELOAD: columnist (4) AR modules NOw = ---
- :dashboard
- :write
- :content
- :profile
------TRY WITH update_attributes :
UPDATING guest(5) modules to : --- []
guest(5) AR modules NOw = --- []
-- AFTER update_attributes: guest (5) AR modules NOw = --- []
-- AFTER update/RELOAD: guest (5) AR modules NOw = --- []
+----+-------------+-------------+--------------------------------------------------------------------------------+
| id | label | nicename | modules |
+----+-------------+-------------+--------------------------------------------------------------------------------+
| 1 | super_admin | Super Admin | dashboard, write, content, feedback, themes, sidebar, users, settings, profile |
| 2 | admin | Admin | dashboard, write, content, feedback, profile, settings, users |
| 3 | editor | Editor | dashboard, write, content, feedback, profile |
| 4 | columnist | Columnist | dashboard, write, content, profile |
| 5 | guest | Guest | |
+----+-------------+-------------+--------------------------------------------------------------------------------+
YAY!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment