Guest User

Untitled

a guest
Nov 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. each_pair { |name, val| }class UsersController < ApplicationController
  2. before_action :configure_permitted_parameters, if: :devise_controller?
  3. before_action :update_resource_params, if: :devise_controller?
  4.  
  5. def new
  6. @user = User.new
  7. end
  8.  
  9. def create
  10. @user = User.new(user.params)
  11. @contractor = Contractor.create(user: @user)
  12. if @user.save
  13. UserMailer.user_alert(@user).deliver_now
  14. redirect_to @user, notice: 'User was successfully created.'
  15. else
  16. render :new
  17. end
  18. end
  19.  
  20. class Contractor < ApplicationRecord
  21. belongs_to :user
  22. has_many :construction_projects, dependent: :destroy
  23. has_many :clients, dependent: :destroy
  24. has_many :documents, through: :construction_projects
  25. has_many :resources
  26. mount_uploader :logo, LogoUploader
  27.  
  28. # Model validations
  29. validates :user, presence: true
  30. validates_associated :construction_projects
  31. validates_associated :clients
  32. validates_associated :documents
  33. validates_associated :resources
  34.  
  35. class User < ApplicationRecord
  36. # Include default devise modules. Others available are:
  37. # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  38. devise :database_authenticatable, :registerable,
  39. :recoverable, :rememberable, :validatable
  40.  
  41. has_one :contractor
  42. has_many :clients, through: :contractor
  43. has_many :construction_projects, through: :contractor
  44.  
  45. # Model validations
  46. validates_associated :clients
  47. validates_associated :construction_projects
  48.  
  49. validates :email, presence: true, uniqueness: true, format: { with: URI::MailTo::EMAIL_REGEXP }
  50.  
  51. def option_projects
  52. projects = self.contractor.construction_projects.map{ |cp| [cp.name, cp.id] }
  53. projects << ["Add a new project", "Add a new project"]
  54. projects
  55. end
  56. end
Add Comment
Please, Sign In to add comment