Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Creating nested models - Rails 3.1
- class UserEntity < ActiveRecord::Base
- has_many :users, :dependent => :restrict, :autosave => true
- end
- class User < ActiveRecord::Base
- has_many :user_login_services, :dependent => :destroy, :autosave => true
- belongs_to :user_entity
- end
- class UserLoginService < ActiveRecord::Base
- belongs_to :user
- #validates :user_id, :presence => true
- end
- def new_user_login(tokens)
- user_entity = UserEntity.new
- 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)
- user.skip_confirmation!
- user.user_login_services.build(:provider => tokens[:provider], :uid => tokens[:uid], :uname => tokens[:name], :uemail => tokens[:email])
- user_entity.save!
- user.confirm!
- ActiveRecord::RecordInvalid (Validation failed: Users user login services user can't be blank):
- app/controllers/users/omniauth_callbacks_controller.rb:86:in `new_user_login'
- class UserEntity < ActiveRecord::Base
- has_many :users, :dependent => :restrict, :autosave => true, :inverse_of => :users_entity
- accepts_nested_attributes_for :users
- end
- class User < ActiveRecord::Base
- has_many :user_login_services, :dependent => :destroy, :autosave => true, :inverse_of => :user
- belongs_to :user_entity, :inverse_of => :users
- accepts_nested_attributes_for :user_login_services
- end
- class UserLoginService < ActiveRecord::Base
- belongs_to :user, :inverse_of => :users_login_services
- validates :user, :presence => true
- end
- class UserEntity < ActiveRecord::Base
- has_many :users
- accepts_nested_attributes_for :users
- end
- class User < ActiveRecord::Base
- belongs_to :user_entity
- has_many :user_login_services, :dependent => :destroy
- accepts_nested_attributes_for :user_login_services
- end
- class UserLoginService < ActiveRecord::Base
- belongs_to :user
- validates :user_id, :presence => true
- end
- def create
- @user_entity = UserEntity.new(params[:user_entity])
- @user_entity.save
- # To Do: handle redirections on error and success
- end
- <%= form_for(@user_entity) do |f| %>
- <%= f.fields_for :users do |u| %>
- <%= u.fields_for :user_login_services do |ul| %>
- <%= ul.select :user_id, @user_entity.users.collect{|u| [u.name, u.id]} %>
- <% end %>
- <% end %>
- <% end %>
Add Comment
Please, Sign In to add comment