Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def new
- kind = Kind.find(params[:asset][:kind])
- borrower_id = params[:asset][:borrower]
- borrower = borrower_id.present? ? Borrower.find(borrower_id) : nil
- terbank_id = params[:asset][:borrower_terbank] || borrower.terbank.id.to_s
- holder_type = params[:asset][:holder_type]
- new_params = { kind: kind, borrower: borrower, borrower_terbank: terbank_id }
- new_params.merge!({ holder_type: holder_type }) if holder_type
- @asset = kind[:class_name].constantize.new(new_params)
- authorize(@asset)
- asset.update(editor: current_user.id.to_s, is_version: true, versioned_parent_id: asset.id)
- @asset.address_attributes = { line: '' }
- render :edit
- end
- def create
- kind = Kind.find_by(class_name: match_asset_class_name)
- borrower = params[:borrower].present? && Borrower.find(params[:borrower]) || nil
- @asset = kind[:class_name].constantize.new(kind: kind, borrower: borrower)
- authorize(@asset)
- 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)
- terbank_id = params[asset.class.name.underscore.to_sym][:borrower_terbank]
- holder_type = params[asset.class.name.underscore.to_sym][:holder_type]
- holder_id = '1' == holder_type ? params[asset.class.name.underscore.to_sym][:holder_id] : ''
- create_params.merge!({ holder_type: holder_type, holder_id: holder_id, borrower_terbank: terbank_id})
- photos_create_params = create_params.to_h.slice(:photos_attributes)
- create_params = create_params.to_h.except(:photos_attributes)
- asset.singleton_validates
- if asset.update(create_params)
- asset.update(photos_create_params)
- redirect_to assets_path, notice: I18n.t('controller_notices.asset.create')
- else
- asset.init_rank_number(:pledgers)
- render :edit
- end
- end
Add Comment
Please, Sign In to add comment