Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def create
- Rails.logger.event.debug("===New Create===n")
- @user_check = true;
- #@event = Event.new(event_params)
- @event = Event.new(event_user_params)
- @users = User.new
- @event.users.each do |user|
- user.password = SecureRandom.base64
- user.password_confirmation = user.password
- #test all saves here
- if(!user.try(:save))
- user_check = false;
- end
- end
- Rails.logger.event.debug("Can we save all users: #{@user_check}. If true, continue.")
- if(@user_check)
- #add all saves here
- #add all associations here
- @event.users.each do |user|
- @user_in_database = User.find_by email: user.email
- Rails.logger.event.debug("User in database check. Id: #{@user_in_database.id}. Email: #{@user_in_database.email}.")
- if (@user_in_database.nil?) # if user is not in the database (unique email check)
- # create a new user
- User.transaction do
- user.save
- end
- Rails.logger.event.debug("User id check: #{@user}")
- @event_user = EventUser.new(user_id: user.id, event_id: params[:event_id])
- # create a new join table record
- EventUser.transaction do
- @event_user.save
- end
- else
- @event_user_join = EventUser.find_by user_id: @user_in_database.id, event_id: params[:event_id]
- Rails.logger.event.debug("Is there a join on this event for this user?. Join object: #{@event_user_join}. If this is nil, no join exists.")
- if (@event_user_join.nil?)
- @event_user = EventUser.new(user_id: @user_in_database.id, event_id: params[:event_id])
- EventUser.transaction do
- @event_user.save
- end
- else
- Rails.logger.event.debug("Join user_id: #{@event_user_join.user_id}. Join event_id: #{@event_user_join.event_id}.")
- Rails.logger.event.debug("Try removing join.")
- EventUser.transaction do
- @event_user_join.delete
- end
- Rails.logger.event.debug("Removal success.")
- end
- end
- end
- Rails.logger.event.debug("===Redirect to Event Guests Page===n")
- redirect_to event_display_path(params[:event_id])
- else
- render 'new'
- Rails.logger.event.debug("===Render New===n")
- end
- end
- private
- def event_user_params
- #params.require(:user).permit(:first_name, :last_name, :email)
- params.require(:event).permit(users_attributes: [:id, :first_name, :last_name, :email, :_destroy])
- end
- def random_password
- random_pass = SecureRandom.base64
- end
- class User < ApplicationRecord
- # Include default devise modules. Others available are:
- # :confirmable, :lockable, :timeoutable and :omniauthable
- devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :trackable, :validatable
- has_many :event_users
- has_many :events, through: :event_users
- #validation code...
- end
- class EventUser < ApplicationRecord
- belongs_to :event
- belongs_to :user
- end
- class Event < ApplicationRecord
- #belongs_to :user
- belongs_to :owner, class_name: "User", foreign_key: :user_id
- has_many :event_users
- has_many :users, through: :event_users
- accepts_nested_attributes_for :users
- #validation code...
- end
- class DeviseCreateUsers < ActiveRecord::Migration[5.1]
- def change
- create_table :users do |t|
- ## Database authenticatable
- t.string :email, null: false, default: ""
- t.string :encrypted_password, null: false, default: ""
- ## Recoverable
- t.string :reset_password_token
- t.datetime :reset_password_sent_at
- ## Rememberable
- t.datetime :remember_created_at
- ## Trackable
- t.integer :sign_in_count, default: 0, null: false
- t.datetime :current_sign_in_at
- t.datetime :last_sign_in_at
- t.string :current_sign_in_ip
- t.string :last_sign_in_ip
- t.timestamps null: false
- end
- add_index :users, :email, unique: true
- add_index :users, :reset_password_token, unique: true
- end
- end
- class AddNamesToUsers < ActiveRecord::Migration[5.1]
- def change
- add_column :users, :first_name, :string, null: false, default: ""
- add_column :users, :last_name, :string, null: false, default: ""
- end
- end
- class CreateEvents < ActiveRecord::Migration[5.1]
- def change
- create_table :events do |t|
- t.string :name, null: false, default: ""
- t.text :description, null: true
- t.integer :option, null: false, default: 1
- t.string :street_address, null: true
- t.integer :apartment_number, null: true
- t.string :city, null: true
- t.date :date, null: true
- t.time :time, null: true
- t.string :password, null: false, default: ""
- t.references :user, foreign_key: true
- end
- end
- end
- class CreateJoinTableEventUser < ActiveRecord::Migration[5.1]
- def change
- create_join_table :events, :users do |t|
- t.index [:event_id, :user_id]
- t.index [:user_id, :event_id]
- end
- end
- end
- class RenameTableEventsUsers < ActiveRecord::Migration[5.1]
- def change
- rename_table :events_users, :event_users
- end
- end
- Rails.logger.event.debug("Try removing join.")
- EventUser.transaction do
- @event_user_join.delete
- end
- Rails.logger.event.debug("Removal success.")
- end
- {"utf8"=>"✓","authenticity_token"=>"HfCo+U+X7DtWUrCn/O2KFEkioGtXyut99NEsjUL08DBs+4FMWkuKYAH0x8cCN8a0OQwiwwxbUBeNz6dqeotZhg==",
- "event"=>
- {"id"=>"16",
- "owner"=>"5",
- "users_attributes"=>
- {"0"=>{"first_name"=>"Test1", "last_name"=>"Test11", "email"=>"test1@test.com", "_destroy"=>"false", "id"=>"8"},
- "1"=>{"first_name"=>"Test4", "last_name"=>"Test44", "email"=>"test4@test.com", "_destroy"=>"false", "id"=>"11"},
- "2"=>{"first_name"=>"Test5", "last_name"=>"Test55", "email"=>"test5@test.com", "_destroy"=>"false", "id"=>"12"}}},
- "commit"=>"Save",
- "event_id"=>"16"}
Add Comment
Please, Sign In to add comment