Skip to content

Instantly share code, notes, and snippets.

задача - загрузить файл (запись из базы данных) из браузера на диск

in routes.rb

  resources :project_proposals, only: [:index] do
    get "excel_download" # !!!
  end

in controller

  def lib

задача - сохранять данные из базы в виде таблицы excel на языке заполнения

in Gemfile

gem 'axlsx'

in lib

#../lib/proposal/project_proposal_service.rb

module Proposal

in Gamfile

gem "recaptcha", require: "recaptcha/rails"

in controller

use verify_recaptcha(model: @item) method before save changes

  def create
    @item = model.new(contact_params)
 @item.lang = params[:lang]

manage model field with data stored on disk

../lib/gexcore/dashboards/service.rb

module Gexcore::Dashboards
  class Service < Gexcore::BaseService

    def self.load_dashboard(row)
      f = filename_dashboard(row.cluster, row.name)

change link image when hover or clicked or both

        %a{:href => link_page("price")}
          %img{:onmouseout => "this.src='YOUR_START_IMAGE'", :onmouseover => "this.src='YOUR_IMAGE_'",
              :onclick => "this.src='YOUR_IMAGE_AFTER_CLICK'", :src => "YOUR_START_IMAGE"}

Be sure to write the quote marks exactly as they are here, or it will not work.

for .log to json

../app/lib/my_simple_formatter.rb

class MySimpleFormatter < ActiveSupport::Logger::SimpleFormatter
  def call(severity, timestamp, _progname, message)
    d = {
        level: severity,
        datetime: timestamp.getutc,
 source: 'rails',

copy from your mashine to remote

sudo scp -r files/lib remote_masine@remote_port:/disk2/gexcloud-main-data/datafiles/flume_1_7_0_libs

простой пример руби скрипта

#!/usr/bin/env ruby

def sh(cmd)
  puts `#{cmd}`
end
sh 'touch /tmp/test_api.txt'
d = Time.now
n = rand(10000)

Task: method for random string any size

def random_string(n)
  (0...n).map { ('a'..'z').to_a[rand(26)] }.join
end

Task: Удалить из строки все слова, длина которых меньше пяти символов. В строке не используются знаки препинания.

string = "asdf adsfkjhg lskjdfglksjdfg dfg h ffd ffdfd lskjdfglhsdfkjg weprtwuiert sldfkgj vsbnm,ckdsfgj"
str_arr = string.split(" ")

Разница между Rails.application и Rails.configuration

вызов Rails.application.secrets.bla-bla если файлы лежат в: ../config, ../config/initializers, ../config/environments

то к ним можно достучаться через Rails.application

../config/secrets.yml

development:
 db: data_base