Skip to content

Instantly share code, notes, and snippets.

@elvisgiv
elvisgiv / Creating gem.md
Last active August 29, 2015 14:11
Gem create

Gem creating

http://habrahabr.ru/post/238163/

http://guides.rubyonrails.org/plugins.html

create gem:

в командной строке перейти в каталог, в который поместите gem и запустить bundle gem your_gem_name пример =>

D:\projects\Gems>bundle gem gem_one или D:\projects\Gems>rails plugin new gem_one

пример кода в сгенерированном файле *\gem_one\lib\gem_one.rb

@elvisgiv
elvisgiv / Creating DB and change column Datatype.md
Last active August 29, 2015 14:11
Creating table DB from command line

#Creating DB http://rusrails.ru/rails-database-migrations

Cначала создаем новое rails application >rails new your_application_name потом заходим в папку созданного приложения и открываем файл database.yml, который находится ..\your_application_name\config\ и меняем название баз данны на те, которые приятны нашему слуху:

development:
<<: *default

database: НА_ВАШЕ_УСМОТРЕНИЕ_dev

@elvisgiv
elvisgiv / Translate.md
Last active April 27, 2018 13:55
как настроить перевод

First!

Для того, чтобы сделать перевод строк для начала необходимо зайти в файл

     *\config\initializers\lacale.rb 

и заменить в нем язык по умолчанию в строке с :en на, в МОЕМ случае, :ru

    C I18n.default_locale = :en На I18n.default_locale = :ru

и добавляем

I18n.available_locales = [:en, :ru]
@elvisgiv
elvisgiv / classifieds_create.md
Last active August 29, 2015 14:15
creating rails app from scratch step by step

#The beginning Перед созданием приложения, смотрю на список установленных руби. Для этого в коммандной строке пишу:

C:\Users\elvis>pik ls
  ruby-2.0.0-p576
  ruby-2.1.5-p273

Теперь выбтраю нужный мне Ruby из списка с помощью команды:

C:\Users\elvis>pik use ruby-2.1.5-p273

Далее устанавливаю Rails:

#Этапы, на которых возможны неполадки.

  • Человек вводит адрес строки URL в свой браузер;
  • Браузер передает на сервер ЗАПРОС и COOKIES. У всех сайтов свои cookies, URL и параметры (последние передаются массивом значений, например http://www.amazon.com/Coupons/b/ref=sv_gb_2?ie=UTF8&node=2231352011, т.е. protocol :// domain / path ? params, где params - это ключ-значение (ie=UTF8 и node=2231352011)) справка см. http://searchengines.guru/showthread.php?t=630301;
  • Далее в дело вступают РЕЛЬСЫ и первым делом смотрят в РУТЫ (..\config\routes.rb). Цель роутера Rails - Роутер Rails распознает URL и соединяет их с экшном контроллера. Он также создает пути и URL, избегая необходимость писать тяжелый код в ваших вьюхах, и в рутах ищут соотретствия определенному экшену/методу определенного контроллера (..\app\controllers\names_controller.rb);
  • Соединение URL с кодом

Когда ваше приложение на Rails получает входящий запрос для: GET /patients/17

#n+1 problem ##Что же такое проблема N+1? Эта проблема возникает, при загрузке дочерних обьектов используя ассоциацию (belongs_to-has_many). Многие ORM (ORM - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования)по умолчанию реализуют ленивую загрузку - соответственно делается запрос на поиск одной записи для родительского обьекта и для КАЖДОЙ дочерней записи. Как вы понимаете, делая N+1 запрос вместо одного вы перенапрягаете БД, чего мы и должны избегать.

Давайте рассмотрим пример приложения, в котором содержаться девайсы, их модели, бренды и категории:

  class Device < ActiveRecord::Base
    belongs_to :device_model
    has_many   :orders
@elvisgiv
elvisgiv / DATETIME_FIELD FOR SIMPLE FORM.md
Last active December 7, 2016 09:03
создание поля с выбором даты для simple_form

#Создание поля с выбором даты для simple_form Мы хотим сделать поле во вьюхе с выбором даты, как здесь:

https://github.com/eonasdan/bootstrap-datetimepicker

Для этого мы устанавливем два гема:

gem 'momentjs-rails', '>= 2.8.1'
gem 'bootstrap3-datetimepicker-rails', '~> 4.0.0'

Их берем здесь:

#Создание дерева в таблице базы данных с помощью гема ANCESTRY https://github.com/stefankroes/ancestry

http://railscasts.com/episodes/262-trees-with-ancestry

Сначала добавляем gem 'ancestry' в Gemfile, затем делаем bundle install.

Теперь пишем в модели таблицы, которую хотим превратить в дерево has_acestry:

..\app\models\malfunctions.rb

@elvisgiv
elvisgiv / Wi-Fi broadcom 802.11gubuntu.md
Last active August 29, 2015 14:17
как подключить Wi-Fi в Ubuntu для сетевой карты broadcom 802.11g

#Wi-Fi для сетевой карты broadcom 802.11g в Ubuntu https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx

##b43 - No Internet access

If you do not have any other means of Internet access from Ubuntu, then you will have to download the firmware from another computer with Internet access, from an existing OS on another partition, or before you install Ubuntu. You will also need the b43-fwcutter package which is usually included on the install media or can be downloaded from the official online repositories.

Install the b43-fwcutter package. This is usually located on the Ubuntu install media under /cdrom/pool/main/b/b43-fwcutter/ or you can download the binary '.deb' package by following the links on launchpad.

Double click on the package to install or in a Terminal issue the following commands: