Guest User

Untitled

a guest
Jul 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. def new
  2. kind = Kind.find(params[:asset][:kind])
  3. borrower_id = params[:asset][:borrower]
  4.  
  5. borrower = borrower_id.present? ? Borrower.find(borrower_id) : nil
  6. terbank_id = params[:asset][:borrower_terbank] || borrower.terbank.id.to_s
  7. holder_type = params[:asset][:holder_type]
  8.  
  9. new_params = { kind: kind, borrower: borrower, borrower_terbank: terbank_id }
  10. new_params.merge!({ holder_type: holder_type }) if holder_type
  11.  
  12.  
  13. @asset = kind[:class_name].constantize.new(new_params)
  14. authorize(@asset)
  15.  
  16. asset.update(editor: current_user.id.to_s, is_version: true, versioned_parent_id: asset.id)
  17. @asset.address_attributes = { line: '' }
  18.  
  19. render :edit
  20. end
  21.  
  22. def create
  23. kind = Kind.find_by(class_name: match_asset_class_name)
  24. borrower = params[:borrower].present? && Borrower.find(params[:borrower]) || nil
  25.  
  26. @asset = kind[:class_name].constantize.new(kind: kind, borrower: borrower)
  27. authorize(@asset)
  28.  
  29. create_params = asset_params(asset).merge(creation_type: :manually, created_by: current_user.id.to_s, editor: current_user.id.to_s, is_version: true, versioned_parent_id: asset.id)
  30.  
  31. terbank_id = params[asset.class.name.underscore.to_sym][:borrower_terbank]
  32. holder_type = params[asset.class.name.underscore.to_sym][:holder_type]
  33.  
  34. holder_id = '1' == holder_type ? params[asset.class.name.underscore.to_sym][:holder_id] : ''
  35.  
  36. create_params.merge!({ holder_type: holder_type, holder_id: holder_id, borrower_terbank: terbank_id})
  37.  
  38. photos_create_params = create_params.to_h.slice(:photos_attributes)
  39. create_params = create_params.to_h.except(:photos_attributes)
  40.  
  41. asset.singleton_validates
  42.  
  43. if asset.update(create_params)
  44. asset.update(photos_create_params)
  45. redirect_to assets_path, notice: I18n.t('controller_notices.asset.create')
  46. else
  47. asset.init_rank_number(:pledgers)
  48. render :edit
  49. end
  50. end
Add Comment
Please, Sign In to add comment