Guest User

Untitled

a guest
Aug 20th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. Creating nested models - Rails 3.1
  2. class UserEntity < ActiveRecord::Base
  3. has_many :users, :dependent => :restrict, :autosave => true
  4. end
  5.  
  6. class User < ActiveRecord::Base
  7. has_many :user_login_services, :dependent => :destroy, :autosave => true
  8. belongs_to :user_entity
  9. end
  10.  
  11. class UserLoginService < ActiveRecord::Base
  12. belongs_to :user
  13. #validates :user_id, :presence => true
  14. end
  15.  
  16. def new_user_login(tokens)
  17. user_entity = UserEntity.new
  18. user = user_entity.users.build(:email => tokens[:email], :password => Devise.friendly_token[0,20], :first_name => tokens[:first_name], :last_name => tokens[:last_name], :has_local_password => false)
  19. user.skip_confirmation!
  20. user.user_login_services.build(:provider => tokens[:provider], :uid => tokens[:uid], :uname => tokens[:name], :uemail => tokens[:email])
  21. user_entity.save!
  22. user.confirm!
  23.  
  24. ActiveRecord::RecordInvalid (Validation failed: Users user login services user can't be blank):
  25. app/controllers/users/omniauth_callbacks_controller.rb:86:in `new_user_login'
  26.  
  27. class UserEntity < ActiveRecord::Base
  28. has_many :users, :dependent => :restrict, :autosave => true, :inverse_of => :users_entity
  29. accepts_nested_attributes_for :users
  30. end
  31.  
  32. class User < ActiveRecord::Base
  33. has_many :user_login_services, :dependent => :destroy, :autosave => true, :inverse_of => :user
  34. belongs_to :user_entity, :inverse_of => :users
  35. accepts_nested_attributes_for :user_login_services
  36. end
  37.  
  38. class UserLoginService < ActiveRecord::Base
  39. belongs_to :user, :inverse_of => :users_login_services
  40. validates :user, :presence => true
  41. end
  42.  
  43. class UserEntity < ActiveRecord::Base
  44. has_many :users
  45. accepts_nested_attributes_for :users
  46. end
  47.  
  48. class User < ActiveRecord::Base
  49. belongs_to :user_entity
  50. has_many :user_login_services, :dependent => :destroy
  51. accepts_nested_attributes_for :user_login_services
  52. end
  53.  
  54. class UserLoginService < ActiveRecord::Base
  55. belongs_to :user
  56. validates :user_id, :presence => true
  57. end
  58.  
  59. def create
  60. @user_entity = UserEntity.new(params[:user_entity])
  61. @user_entity.save
  62. # To Do: handle redirections on error and success
  63. end
  64.  
  65. <%= form_for(@user_entity) do |f| %>
  66. <%= f.fields_for :users do |u| %>
  67. <%= u.fields_for :user_login_services do |ul| %>
  68. <%= ul.select :user_id, @user_entity.users.collect{|u| [u.name, u.id]} %>
  69. <% end %>
  70. <% end %>
  71. <% end %>
Add Comment
Please, Sign In to add comment