
Vitaly
12.05.2017
16:58:30
https://habrahabr.ru/company/everydaytools/blog/328406/

Vasiliy
12.05.2017
17:16:05
ало
деплой на хероку и не знай бед

Denis
12.05.2017
17:16:59
Такое не катит

Google

Denis
12.05.2017
17:17:14
Есть vps на него надо все

Vasiliy
12.05.2017
17:18:01
капистрано+пума+нгинкс

Denis
12.05.2017
17:23:57
Капистрано это просто контейнер? На подобии докер?

Klim
12.05.2017
17:25:01
нет. эдо типа дсл для деплоя.

v
12.05.2017
17:31:29
а как ты решил с капистрано не связываться?
если не представляешь что это

Aleksey
12.05.2017
18:16:23

Anton
12.05.2017
19:38:12
подскажите, как уменьшить время для срабатывания строки состояния (полоса загрузки вверху страницы во время запроса)?

v
12.05.2017
19:38:58
интернет более быстрый купить

Anton
12.05.2017
19:46:21
ок, но я читал где-то что можно поставить его время срабатывания

ojab
12.05.2017
19:48:16
если речь о турболинках — см. PROGRESS_BAR_DELAY в сорцах

v
12.05.2017
19:50:35
телепт в чати

Google

Vitaly
13.05.2017
07:54:27
подскажите пожалуйста, когда несколько моделей используют одну общую модель, например изображения, применяют STI или делают все раздельно через вшений ключ? просто если STI, то я что-то не соображу как, в туториалах не видел что бы производная модель имела has_many к родительской

ojab
13.05.2017
07:57:37
когда как
has_many :xxx, class_name: Yyy позволяет какие угодно связи делать

Vitaly
13.05.2017
07:59:46
то есть если я отдельно не генерил модель производную, а просто дописал производный класс дальше под родительским, то я могу применить такой способ связи? даже если производных моделей будет много?
ок, буду считать что да.
спасибо.

ojab
13.05.2017
08:04:25
ага, можешь

Vitaly
13.05.2017
08:05:42
ага, можешь
а можешь пожалуйста объяснить, в чем тогда будет разница, между обычной STI структуры, от той где в производных еще дописываются has_many :parent?
ведь по сути и так и этак их можно сделать множество а разделяются они по type

ojab
13.05.2017
08:12:09
тем что в sti ты можешь леко вытащить все записи по parent'у, например
сколько бы у тебя type'ов не было
или что имеется в виду под той где в производных еще дописываются has_many :parent?

Vitaly
13.05.2017
08:13:35
а ща напишу пример
вот без has_many STI
class Image < ApplicationRecord
end
class Bike < Image
end
class Auto < Image
end
а вот как ты сказал с has_many:
class Image < ApplicationRecord
belongs_to :bike
belongs_to :auto
end
class Bike < Image
has_many :images, class_name: :image
end
class Auto < Image
has_many :images, class_name: :image
end
и я не врубаюсь зачем тут has_many, что это дает и в чем разница

ojab
13.05.2017
08:18:45
здесь ничего не даёт, насколько я вижу
STI нужен если, например,
class Person
has_many :actions
end
class Action
belongs_to :person
end
class FirstSubAction < Action; end
class SecondSubAction < Action; end
одним запросом мы можем вытащить все Action для Person

Vitaly
13.05.2017
08:21:37
но как в твоем примере же нет связи Person с Action?

ojab
13.05.2017
08:23:04
fxd, она там подразумевалась, ага

Google

Vitaly
13.05.2017
08:26:51
извини, докапаюсь по поводу твоего примера, под Actions подразумевается список Экшенов для Контроллера? или это просто абстракный пример?

ojab
13.05.2017
08:27:11
это всё модели
у юзера есть много действий, действия бывают разные
у каждого действия какие-то свои поля
(но пример абстрактный, да)

Vitaly
13.05.2017
08:35:47
понятно.... спасибо ?


Denis
13.05.2017
18:46:10
Перевел рельсы в продакшен.
Создал shared/pids shared/sockets shared/log.
Настроил сервер puma. Отредактировал config/puma.rb
workers 2
threads 1, 6
app_dir = File.expand_path("../..", __FILE__)
shared_dir = "#{app_dir}/shared"
rails_env = ENV['RAILS_ENV'] || "production"
environment rails_env
bind "unix://#{shared_dir}/sockets/puma.sock"
stdout_redirect "#{shared_dir}/log/puma.stdout.log", "#{shared_dir}/log/puma.stderr.log", true
pidfile "#{shared_dir}/pids/puma.pid"
state_path "#{shared_dir}/pids/puma.state"
activate_control_app
on_worker_boot do
require "active_record"
ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
ActiveRecord::Base.establish_connection(YAML.load_file("#{app_dir}/config/database.yml")[rails_env])
end
Создал /etc/nginx/sites-available/hm c содержимым:
upstream app {
server unix:/home/hm/web/yourhm.com.ua/kpsrtf/shared/sockets/puma.sock fail_timeout=0;
}
server {
listen 80;
server_name localhost;
root /home/hm/web/yourhm.com.ua/kpsrtf/public;
try_files $uri/index.html $uri @app;
location @app {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
Создал сервис запуска /etc/systemd/system/puma.service
[Unit]
Description=Puma application server
After=network.target
[Service]
WorkingDirectory=/home/hm/web/yourhm.com.ua/kpsrtf
#Environment=RAILS_ENV=production
User=rails
PIDFile=/home/hm/web/yourhm.com.ua/kpsrtf/shared/pids/puma.pid
ExecStart=/home/hm/.rbenv/shims/bundle exec \
/home/hm/.rbenv/shims/puma \
-C /home/hm/web/yourhm.com.ua/kpsrtf/config/puma.rb
[Install]
WantedBy=multi-user.target
Нужно ли еще что-то добавлять в nginx.conf? или что-то еще забыл?


Alex
13.05.2017
18:48:30
можно еще пропатчить kde2

Denis
13.05.2017
18:51:02
freebsd не использую так что надобности нет

ojab
13.05.2017
19:00:08
тем более что с форматированием от телеграма вряд ли кто-то это будет читать
(gist умеет несколько файлов показывать и форматировать)


Denis
13.05.2017
19:02:24
Сейчас тогда

ojab
13.05.2017
19:03:52
статика как отдаётся?

Denis
13.05.2017
19:05:25
https://gist.github.com/denisoster/9ff886db16677446a4543b3340b7242f

ojab
13.05.2017
19:08:56
stdout_redirect зачем, если это под systemd работает?

Denis
13.05.2017
19:09:44
Или возможно /etc/nginx/sites-available/hm нужно переместить в /home/hm/conf/web/nginx.conf -?
ojab эта строка не нужна?

ojab
13.05.2017
19:10:50
не знаю, мне непонятно зачем она там
статика как отдаётся?

Google

Denis
13.05.2017
19:11:18
в доке DO она была
Как отдается не знаю...
В доках что читал о подобном ни слова

ojab
13.05.2017
19:14:41
деплоится это в итоге через capistrano?

Admin
ERROR: S client not available

Denis
13.05.2017
19:14:54
При созаднии домена через vestaсp создается /home/hm/conf/web/nginx.conf поэтому и подумал что можно так
Нет сам деплою

ojab
13.05.2017
19:15:27
тогда удачи, вряд ли кто-то будет разбираться с твоей системой деплоя и с тем куда что кладётся.

Denis
13.05.2017
19:15:49
когда запускаю через RAILS_ENV=production rails server —binding=yourhm.com.ua сайт доступен
правда с портом
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-puma-and-nginx-on-ubuntu-14-04
тут не используется capistrano

ojab
13.05.2017
19:20:21
capistrano — стандартная система деплоя рельсовых приложений, её использует подавляющее большинство пишуших рельсовые приложения и люди знают куда что она кладёт. С твоим способом деплоя как минимум ассеты (scss и иже) не прекомпилируются и работать это в общем случае не будет.
так что сначала нужно фиксить не nginx/systemd/whatever, а деплой

Denis
13.05.2017
19:21:51
разве ассеты в продакшене не берутся с public?

Artur
13.05.2017
19:30:30

Denis
13.05.2017
19:31:05
Ну так RAILS_ENV=production rake assets:precompile

Artur
13.05.2017
19:34:23
а, ну вот речь как раз о том, что при деплое капистраной ты делаешь меньше действий руками
то есть просто пишешь у себя cap production deploy
и все

Google

Denis
13.05.2017
19:35:26
Мне и самому это сделать не сложно на самом деле. Может я еще не понял всех ее прелистей. Ибо мало занимаюсь руби а деплоем то вообще первый раз.

Artur
13.05.2017
19:36:50
а при деплое руками, например, у тебя может закончиться место на диске, какая-то хуйня с миграциями может произойти, ну разные бывают случаи и тогда ты соснешь :(

Denis
13.05.2017
19:39:16
Ну как говорил выше именно это преложенеи на сервере в продакшене работает отлично. дело сейчас в настиройки nginx

Mark
14.05.2017
07:10:07
Логи смотри

Denis
14.05.2017
07:55:21
В журнале тоже самое что и на скрине

Mark
14.05.2017
08:41:04
в PATH_TO_APP/log/production.log ?

Denis
14.05.2017
08:55:47
@mvfrost log чистый

olga
14.05.2017
08:57:20
#работа ищу developer в Gett (global team) с опытом RoR от 2-х лет. Также в работе используют JS, Go, MySQL, Postgresql, Redis, Git, MongoDB, Sphinx...Работа в офисе, график гибкий. Зарплата обсуждается 150-300т.р. Заниматься беспилотниками. Команда сильная. Задачи интересные. Пишите, звоните o_yaskevich@onlinepersonal.ru., +79166160600

v
14.05.2017
09:01:29
такое чуйство, что в гетте разработчиков на колбасу пускают
слышно что-нибудь про тех, кто туда устроился?

Klim
14.05.2017
09:03:31
Так софт же для беспилотников. Там NDA, АНБ, ФБР все дела.

olga
14.05.2017
10:05:42
в Гетт мы устроили пока одного только. В глобальную команду. Там еще есть локальная команда. Он доволен.