Практика Ruby №21(отправка почты, JS/Jquery, SQL)

Здравствуйте!

Здравствуйте!

По большей части создаю это для себя, но если кому-то пригодится попрактиковаться в Ruby с самого начала, то welcome =)

По мере своего продвижения обучения буду пополнять конспект новыми знаниями, поэтому не судите строго

По сути, это просто краткий конспект, в который я записываю все, что хочу запомнить или сложно запоминается, плюсом ко всему записывать и придумывать себе задания для практики.

Все материалы для конспекта взяты с rubyschool.us

Отправка почты gmail со страницы на Ruby-Sinatra с помощью гема Pony:

Предварительно необходимо разрешить доступ на настройках Google-аккаунта по ссылке.

@email - вводимая пользователем почта
@message_text - вводимое сообщение пользователем
require 'pony'
Pony.mail({
:to => 'example@example.com',# here need email to get
:from => 'example@example.com',# here need email to send
:via => :smtp,
:subject => "Новое сообщение от пользователя #{@email}",
:body => "#{@message_text }",
:via_options => {
:address => 'smtp.gmail.com',
:port => '587',
:enable_starttls_auto => true,
:user_name => 'username', # username email to send
:password => 'password', # password email to send
:authentication => :plain, # :plain, :login, :cram_md5, no auth by default
:domain => "127.0.0.1" # the HELO domain provided by the client to the server
}
})

Правильное написание JS кода в файле представления:

<script type="text/javascript">
$(function(){
$('# color').simplecolorpicker();
});
</script>

В данном случае JS выполнится после загрузки всей страницы.

Язык запросов SQL

structured query language (структурированный язык запросов)

Установка под Ubuntu:
sudo apt-get install sqlite
gem install sqlite3

https://linuxhint.com/install_sqlite_browser_ubuntu_1804/

Для практики: http://www.sqlishard.com/Exercise

Сделать выборку:
SELECT * FROM CARS(название таблицы)
WHERE PRICE >1000
выбирает из всех значений в таблице, где PRICE больше 1000
Добавить:
insert into cars (Model, Price) VALUES ("BMW", 1000)
(строки как и везде нужно указывать с "")

Немного команд для консолей:
.header on - показывает заголовок
.mode column - делит на ряды

Как это выглядит в Ruby:

Добавление в существующую БД:
require 'sqlite3'
db = SQLite3::Database.new 'bd.sqlite'
# название базы данных
db.execute "insert into Cars (Model, Price) VALUES ('ZAZ', 8000)"
db.close
Выборка из существующей БД:
require 'sqlite3'
db = SQLite3::Database.new 'bd.sqlite' # название базы данных
db.execute "SELECT *FROM Cars" do |car|
puts car
puts '======='
end
db.close