
Radzhab
23.05.2017
05:05:25
Dont repeat yourself
Да. Можно сказать и так

Nikolai
23.05.2017
05:24:57

Adel
23.05.2017
05:45:09
hash["ключ"] = "значение"
Так добавлять в ассоц. массив?

Google

Vladimir
23.05.2017
05:51:31
Если hash - переменная, да.
hash = {}; hash[:key] = 123

Nikolay
23.05.2017
05:57:50

Adel
23.05.2017
05:57:50
Спасибо за ответы

O
23.05.2017
06:09:46

Vladimir
23.05.2017
06:26:18
Другой вариант :)

Natalia
23.05.2017
07:27:16
Есть кто живой?

O
23.05.2017
07:27:44
?

Nikolai
23.05.2017
07:28:01
Райком закрыт, все ушли на фронт

Svetlana
23.05.2017
08:58:58
Наташа, кого ищешь? «Что мертво − умереть не может"».

Natalia
23.05.2017
09:00:10
ага, тип того

Klim
23.05.2017
09:59:03
Валар моргулис, в хату.

Google

Svetlana
23.05.2017
10:07:40
Объясните, пожалуйста, как технически вложенные контроллеры делать правильно, чтобы ничего не упустить. Я вчерашние две ссылки изучила внимательно. Как я себе представляю алгоритм сейчас:
1. В routes записать зависимости, например:
resources :companies do
resources :accounts, module: :companies
end
2. Создать собственно папку со вложенным контроллером.
3. Контроллер создать вручную, код внутри весь тоже вручную.
Что-то ещё надо добавлять? Есть какие-то генераторы для вложенных контроллеров? Я делала через generate controller - второго уровня, а третьего − не получилось уже.

Vitaly
23.05.2017
10:13:41
Заюзан :namespace и класс вложенный в модуль

Svetlana
23.05.2017
10:22:29
Спасибо. А вложение третьего уровня как добавлять?
вручную?

Klim
23.05.2017
10:24:37
лучше никак. серьезно.

Vitaly
23.05.2017
10:25:34

Svetlana
23.05.2017
10:26:08
Интересно. Спасибо.

Klim
23.05.2017
10:27:15
ты просто в роутах потом заблудишься.

Vitaliy
23.05.2017
10:59:27
Иерархия контроллеров (Хабр) - ссылка, которой я чаще всего делюсь в рельсовом (и около) сообществе. Маст-рид. В дополнение к ней также хорошо заходит How DHH Organizes His Rails Controllers.
TL;DR:
- В рельсовых контроллерах оптимально держать только CRUD-экшны (index new create show edit update destroy);
- Если появляются нестандартные экшны - их стоит вынести в отдельный контроллер и сделать CRUD;
- Как выносить и строить иерархию - описано в первой статье.
Эти принципы я использую уже 2 года во всех боевых проектах. Несмотря на то, что первой статье уже 5 лет - подход до сих пор актуален. Хотя мне все же есть, чем его дополнить. Могу написать статью на тему. Интересно? Палец вверх.


Svetlana
23.05.2017
11:02:49
Ага, интересно.

Vitaliy
23.05.2017
11:04:34


Svetlana
23.05.2017
11:04:37
Оуоуо У меня получилась вложенная страница
(Здесь танец победителя) а хелперы там надо? Они от родительского контроллера переходят, да?

Vitaliy
23.05.2017
11:06:22
хелперы, объявленные в helpers - общие для всего проекта
хелперы, объявленные в контроллере, от которого наследуемся - действуют в наследнике тоже

Roman
23.05.2017
11:13:30
Ребят, кто пользовался rspec api doc, подскажите, как для него организовать авторизацию(devise token auth)?

Radzhab
23.05.2017
11:19:06
где можно достать самый полный capistrano файл
или может кто расшарит из гуру

Vitaliy
23.05.2017
11:21:40
https://github.com/gambala/gambala/blob/master/Gemfile
https://github.com/gambala/gambala/blob/master/Capfile
https://github.com/gambala/gambala/blob/master/config/deploy.rb
https://github.com/gambala/gambala/blob/master/config/deploy/production.rb

Google

Radzhab
23.05.2017
11:23:37
forbidden_locations
что это(

Vitaliy
23.05.2017
11:25:11
url-ки, к которым проявляют повышенное внимание злоумышленники
стучатся по этим адресам, в надежде что наткнутся на уязвимость и внедрят вредоносный код в проект
я их перекрываю в nginx'е
https://github.com/gambala/gambala/blob/master/config/deploy/templates/nginx_conf.erb
location ~ (<%= fetch(:forbidden_locations).join('|') %>) {
deny all;
access_log off;
error_log off;
}
тут можно глянуть, какой из темплейта nginx_conf.erb получается результирующий nginx.conf, который отправляется капистраной на сервер.
Но это с учетом, что, например, включен и настроен ssl c https на сервере

Radzhab
23.05.2017
11:33:24
а в чем разница между deploy.rn
b
и production.rn
b

Vitaliy
23.05.2017
11:33:37
Про включение у меня тоже памятка есть (а внутри там - ссылка на пару статей по теме). Но для начала я рекомендую задеплоить без ssl: set :nginx_use_ssl, false
бывает, что в одном проекте помимо development test и production есть еще, например, staging, который должен деплоиться со своими особыми параметрами на отдельный сервер.
Тогда его конфиги сохраняем в staging.rb
и деплоим с помощью cap staging deploy

Google

Radzhab
23.05.2017
11:35:26
мм
не совсем понятно что за staging

Vitaliy
23.05.2017
11:36:28
крупные боевые проекты не льются сразу на прод
высок риск, что если что-то сломается - сервис упадет для тысяч/миллионов пользователей
поэтому обновки заливаются сперва на staging-сервер, где прогоняются и тестируются ограниченным кол-вом пользователей (сотрудниками компании, например, или бета-тестерами)
и потом после проверок стабильная уже версия выгоняется на прод

Di
23.05.2017
13:23:44
Народ, напомните, а то помнил да забыл:
Если запрос в контроллер пришел в JS формате (например у линка стоял атрибут remote: true) то по умолчанию отвечать он тоже будет в JS и при этом не будет рендерить layout, а будет искать соответствующий шаблон, верно?
Ну если respond_to не прописан никакой.

Vitaliy
23.05.2017
13:24:37
Да, все так
Если есть лайаут application.js.erb - заюзает его

Di
23.05.2017
13:26:17
АааА, вот в чем закавыка
У меня есть application.slim просто, я так понимаю эффект тот же если бы было application.js.slim

Vitaliy
23.05.2017
13:27:11
Нужно переименовать в application.html.slim

Di
23.05.2017
13:27:19
А то у меня лейаут в аякс лезет, не могу понять почему. Спасиб.

Vitaliy
23.05.2017
13:27:32
Тогда этот лайаут будет использоваться только в html

Di
23.05.2017
13:27:35
Да это легаси, страшновато трогать даже. :)
Обкостылил в контроллере render layout: false. Просто разобраться хотелось.

Антон
23.05.2017
14:18:50

Di
23.05.2017
14:27:52

Антон
23.05.2017
14:28:54
Че это? Репонд ту json и он вообще вьюхи трогать не будет

Google

Vitaliy
23.05.2017
14:50:59
но в случае с js будет

Nikolay
23.05.2017
15:57:10
рубаны, подскажите как сделать такое. Вот есть форма с селектом, которая по new заполняется по User.all например, и не проходит валидация. Как сделать чтобы create снова вызывал new, но уже с выбранным параметром?
можно в общих чертах

Alex
23.05.2017
16:04:28
у select есть опция selected value="", туда подставляешь значение из переменной

Denis
23.05.2017
16:05:23
remote: true

Alex
23.05.2017
16:06:03
но как это делается в форм билдере я не смотрел еще, я про чистый html

Nikolay
23.05.2017
16:08:17
про чистый знаю
но тут ведь рельсы

O
23.05.2017
16:18:22
В форм бюлдеры value: "текст"
Если не ошибаюсь
Аа в selected
Ошибся

Alex
23.05.2017
16:21:38
вообщем тут все описано :) https://stackoverflow.com/questions/24154064/rails-select-tag-not-pre-selected-after-forms-validation-fail