@proRuby

Страница 265 из 1594
Alexander
07.11.2016
14:31:39
объясните пожалуйста про генератор
Да нет никакого генератора, забудь

Alex
07.11.2016
14:31:53
Есть кстати, только это не то про что я говорил.

https://ruby-doc.org/stdlib-1.8.7/libdoc/generator/rdoc/Generator.html Это правда старые руби, может уже и нет

Tim
07.11.2016
14:32:09
Всем привет. А вот если нужно отдавать 404 и 500 странички (которые лежат в public) с I18n, то нужно создавать контроллер ?

Google
Alex
07.11.2016
14:32:38
А ты не боишься что i18n выдаст ошибку?

Anon
07.11.2016
14:33:08
Допустим, но в примере a.each_with_index.reduce(0) { |prev, (cur, i)| }от each_with_index идет cur и i от reduce должен идти cur и prev, prev идет, куда второй cur девается?

Просто каждый итератор оборачивает эти аргументы и добавляет свои.

Alex
07.11.2016
14:34:35
Нет
а то что шаблонизатор ошибку вернет не боишься?

Alexander
07.11.2016
14:34:56
Alex
07.11.2016
14:35:03
Alexander
07.11.2016
14:35:08
Alex
07.11.2016
14:35:19
а nginx это уже не уровень приложения, это не моя забота.

Alexander
07.11.2016
14:35:22
а ssl? а сервер (ОС)?

Alex
07.11.2016
14:35:28
Тоже уже не моя забота.

Приложение может упасть попытавшись сформировать страничку о произошедшей ошибке.

Google
Alexander
07.11.2016
14:36:05
ок, я по-другому спрошу: с чего бы вдруг R18n или Tilt выдать ошибку?

Alex
07.11.2016
14:36:18
Например к i18n можно подключить базу

и брать переводы оттуда

и кешировать их еще.

Но это будет добавлено уже потом. И тут раз и произойдет подобная ошибка.

Tim
07.11.2016
14:37:33
Мне нужно просто чтобы страницы были на разных языках. Никаких запросов к БД не будет. Вопрос то другой был.

Alex
07.11.2016
14:37:43
Вот с того бы вдруг может R18n упасть.

Alexander
07.11.2016
14:37:57
Но это будет добавлено уже потом. И тут раз и произойдет подобная ошибка.
ну если добавлять и не тестировать — то конечно может

Alex
07.11.2016
14:37:58
Ну я просто предупредил что приложение может упасть при формировании кастомной странички об ошибке.

ну если добавлять и не тестировать — то конечно может
Как ты протестируешь отсутствие перевода для конкретной строки если они из базы в продакшене берутся?

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

Alexander
07.11.2016
14:38:41
def make_dir(&block) puts "Creating '#{@app_name}' directory..." FileUtils.mkdir @app_name FileUtils.cd @app_name, &block end пример, где yield неуместен

Alex
07.11.2016
14:39:31
Потому и существуют блоки.

у меня например функция cron_lock была, там тоже только блок нужен.

Alexander
07.11.2016
14:39:50
Как ты протестируешь отсутствие перевода для конкретной строки если они из базы в продакшене берутся?
у тебя на деве не будет перевода для базы, увидишь ошибку при разработке, позаботишься о переводе на проде (миграция?)

Alex
07.11.2016
14:40:02
переводчик например.

Alexander
07.11.2016
14:40:26
На проде ее формирует тот кто в админке сидит
миграция может задать изначальное состояние, ну либо пнёшь переводчика при релизе

Alex
07.11.2016
14:40:40
Ну у тебя такую ошибку допустит переводчик случайно

Alexander
07.11.2016
14:40:42
если там будут даже пустые строки — ничего не упадёт

Google
Alex
07.11.2016
14:40:55
и ты потом уже узнаешь что "вот тут" может упасть и обработаешь эту ситуацию

Но ты изначально ее можешь не предусмотреть.

какую «такую»?
Убьет строку с переводом например

Alexander
07.11.2016
14:41:53
если ты в базу загоняешь переводы — у тебя же не только страницы с ошибками могут упасть при таком неаккуратном переводчике, а вообще что угодно.

Alex
07.11.2016
14:42:18
Суть то не в этом.

Суть в том что сначала ты делаешь страничку об ошибке динамической

Alexander
07.11.2016
14:42:28
плюс r18n делает просто подсветку при отсутствии перевода, нет?

тип красным ключи выводит

Alex
07.11.2016
14:42:40
а потом добавляешь какую то фичу которая может сломать генерацию странички.

а, так это гем

Alexander
07.11.2016
14:43:00
да не ломается она, в r18n это предусмотрено

Alexander
07.11.2016
14:43:07
правда хз как с базой, но думаю то же самое

Alex
07.11.2016
14:43:15
Это был просто пример ....

Alexander
07.11.2016
14:43:19
в Yaml нет ключа — вывод с подсветкой

а, так это гем
не первый день же живёшь на свете, мог бы знать

Alex
07.11.2016
14:44:11
не первый день же живёшь на свете, мог бы знать
Я не занимался активно переводами, юзал стандартный рельсовый

Alexander
07.11.2016
14:44:37
Я не занимался активно переводами, юзал стандартный рельсовый
ну а что тогда лезть с советами, коль не пробовал даже

Alex
07.11.2016
14:44:57
Совет не относился к твоему гему вообще никак.

Alexander
07.11.2016
14:45:44
это не мой гем — раз вопрос относился к нему, а твои советы к вопросу — два

Google
Alex
07.11.2016
14:46:13
это не мой гем — раз вопрос относился к нему, а твои советы к вопросу — два
Я сказал что мой совет к твоему гему не относился, не путай пожалуйста.

Совет относился к тому что страничка об ошибке может упасть

Alex
07.11.2016
14:47:15
не-а, не может
У тебя приложения не падают?

Anon
07.11.2016
14:47:54
1. [1,2,3].each_with_index.reduce(0) { |a,b| puts "#{a} - #{b}" }Первая итерация 0 - [1, 0]2. [1,2,3].each_with_index.reduce(0) { |a,b,c| puts "#{a} - #{b} - #{c}" } Первая итерация 0 - [1, 0] -Т.е. в C ничего не передается 3. [1,2,3].each_with_index.reduce(0) { |a,b,(c,d)| puts "#{a} - #{b} - #{c} - #{d}" } Первая итерация ```0 - [1, 0] - -Значит тоже в аргументы в скобках ничего не передается и только: 4. [1,2,3].each_with_index.reduce(0) { |a,(b,c)| puts "#{a} - #{b} - #{c}" }Первая итерация 0 - 1 - 0Дает желаемый результат.

Alexander
07.11.2016
14:48:16
У тебя приложения не падают?
не из-за переводов точно.

Alex
07.11.2016
14:48:55
ты правда сути не понял или притворяешься?

Admin
ERROR: S client not available

Anon
07.11.2016
14:49:30
Разметку потерял

Alexander
07.11.2016
14:49:50
ты правда сути не понял или притворяешься?
понял. ты боишься, что упадёт. не падает. человек видит страницу с ошибкой. некрасивую. но видит и ничего не падает. некрасивая — косяк переводчика. не твоего приложения.

Alex
07.11.2016
14:50:06
> не падает Пока не внедришь фичу после которой начнет падать

Alexander
07.11.2016
14:50:19
nginx — не твоя забота? ну так и содержание БД — не твоя забота

Alex
07.11.2016
14:50:37
С чего бы это?

I
07.11.2016
14:50:50
согласен

для этого есть devops те же

Alexander
07.11.2016
14:51:11
а обработка отсутствующих данных на твоей совести, и она уже реализована в геме, без которого работать с переводами странно. работаешь без него — ­заботься сам

Anon
07.11.2016
14:52:04
Дай ссылку

Google
Alex
07.11.2016
14:53:26
Ты прицепился к этим переводам как будто бы это именно суть моей боязни.

Ты можешь наговнокодить контроллер который будет эти ошибки рисовать, унаследоваться от ApplicationController и допустить еще кучку ошибок при которых произойдет ошибка генерации страницы ошибки.

Суть вообще не в переводах, но ты к ним аппелируешь как будто бы это и есть проблема.

Alexander
07.11.2016
14:54:09
Причем здесь переводы скажи мне?
ну тип вопрос был про переводы (внезапно)

Alex
07.11.2016
14:54:40
Ну по сути вопрос был про кастомную страничку обработки этих ошибок

а переводы это частная задача.

Alexander
07.11.2016
14:56:41
ответ для переводимой статики: http://stackoverflow.com/a/13308853/2630849

Alex
07.11.2016
14:57:16
Крутое решение!

Alexander
07.11.2016
14:57:31
Крутое решение!
если ещё работает

Alex
07.11.2016
14:58:00
Если нет, то это идея для гема.

Tim
07.11.2016
14:59:00
http://guides.rubyonrails.org/i18n.html пункт 3.6 еще не проверял

Alex
07.11.2016
16:05:49
@AlexWayfer r18n прикольный.

Alexander
07.11.2016
16:07:06
@AlexWayfer r18n прикольный.
конечно. без него не рвался бы делать мульти-язычность. но к бд его ещё не пробовал подключать.

Alex
07.11.2016
16:07:31
я стандартный рельсовый к бд подключал, так себе вариант.

Alexander
07.11.2016
16:08:07
я стандартный рельсовый к бд подключал, так себе вариант.
в рельсах i18n? это тоже гем, но со скупым интерфейсом прост

Alex
07.11.2016
16:08:20
чисто технически это гем.

но в целом просто подсистема рельсы.

Alexander
07.11.2016
16:09:20
чисто технически это гем.
ну вот r18n — другой гем, который юзает i18n, но при этом даёт более удобный и гибкий интерфейс. хотя есть у меня претензии (почему to_hash, блеадь, а не to_h?!), но в целом норм

Alex
07.11.2016
16:09:43
> почему to_hash, блеадь, а не to_h?! Может их monkey patch бесит.

Lupsick
07.11.2016
16:10:08
https://github.com/jalkoby/squasher

Страница 265 из 1594