
Vadim
10.08.2017
08:10:29
https или http?

Amir
10.08.2017
08:11:33
поменял
proxy_set_header Host $host;
на
proxy_set_header Host $http_host;
просто по чутье
и все заработала
хотя пишут
Однако, если это поле отсутствует в заголовке запроса клиента, то ничего передаваться не будет. В этом случае лучше воспользоваться переменной $host - её значение равно имени сервера в поле “Host” заголовка запроса, или же основному имени сервера, если поля нет:
Кроме того, можно передать имя сервера вместе с портом проксируемого сервера:
proxy_set_header Host $host:$proxy_port;

Google

Amir
10.08.2017
08:12:53
а так не работает
а теперь сделал так
proxy_set_header Host $host:$server_port;
вроде тоже работает
че кчему

No
10.08.2017
10:24:38
https://semaphoreci.com/blog/2017/08/09/faster-rails-eliminating-n-plus-one-queries.html?utm_source=rubyweekly&utm_medium=email
Уже обсуждали
но напомнте
зачем каждый месяц писать подобную статью?
в рубивикли из выпуска в выпуск пихают что-то типа "Вся правда про N+1"

Vladislav
10.08.2017
10:26:46
Потому что у каждого в выпуске есть кусочек уникального контента

Eugene
10.08.2017
12:43:22
что нибудь крутое для логирование воркеров есть у вас на примете?
resque

Anton
10.08.2017
12:44:25
обычный логгер?
или что тебе надо?

Eugene
10.08.2017
12:45:09
Да

Google

Fedor
10.08.2017
12:47:51
Rails.logger ?
Или нужно что то вроде rollbar?

Igor
10.08.2017
12:58:21
Ребят, есть paperclip, есть рекорды, каждый из которых имеет image.
Задача в том что бы сделать копию, в теории будет много копий одной записи. Изначально даже не подумал, и просто дублировал всё как есть. Теперь начал думать о том что таким образом будет создаваться много одинаковых файлов image на сервере.
Есть какой-нибудь тривиальный путь решения проблемы? предложили связывать новые записи с уже существующим файлом. Мне кажется что это не безопасно, я ошибаюсь?

Fedor
10.08.2017
13:00:15
hardlink
правда реализацию придется самому писать
где-то в недрах обработки файлов
вообще paperclip не очень то дает модифицировать свой код, так что я бы посоветовал переехать на carrierwave
у него есть режив совместимости, можно настроить carrierwave и просто подпихнуть ему старую базу, я так делал

Igor
10.08.2017
13:02:59
Не вариант переходить. По простому подменить линки я так понимаю не получится

ojab
10.08.2017
13:03:37

Igor
10.08.2017
13:04:56
Много записей становятся зависимыми от одного файла в системе

Fedor
10.08.2017
13:05:05
дернул destroy на одной модельке - снес у всех файлы

ojab
10.08.2017
13:05:40
https://github.com/thoughtbot/paperclip#file-preservation-for-soft-delete

Fedor
10.08.2017
13:06:40

ojab
10.08.2017
13:08:22
А при каких условиях надо удалять?

Fedor
10.08.2017
13:08:40
ну когда-нибудь файлы обчно надо удалять
что бы место не занимали
https://github.com/thoughtbot/paperclip#custom-attachment-processors

ojab
10.08.2017
13:09:01
Таску написать, которая будет периодически запускаться и по условию удалять.

Google

Fedor
10.08.2017
13:09:18
можно попробовать написать свой процессор который будет делать картинку хардлинком имеющейся при дублировании
и дергать его как-то именно при дублировании

rekero
10.08.2017
13:10:10
md5 вычисляй файла
и проверяй, есть ли уже запись с таким md5

Igor
10.08.2017
13:12:01
я думал записывать напрямую с таким путём к фалу как оригинальная запись

Fedor
10.08.2017
13:12:38
хардлинк это такая хитрая штука в файловой системе, которая указывает на наборт блоков на жестком диске, где хранится информация
пока ссылка есть - файл есть

Антон
10.08.2017
13:13:07
помоему задача не сформулирована окончательно

Fedor
10.08.2017
13:13:11
хитрость в том, что можно сделать несколько ссылок на один набор блоков, будет несколько одинаковых файлов, но место занимать будет только один
и удалится он только с последней ссылкой

Антон
10.08.2017
13:13:22
предлагать решения изходя из предположений - странновато

Антон
10.08.2017
13:13:47

Fedor
10.08.2017
13:14:02
нет

Антон
10.08.2017
13:14:10
в чем разница?

Fedor
10.08.2017
13:14:16
https://ru.wikipedia.org/wiki/%D0%96%D1%91%D1%81%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0
это вообще не иеет отношения к базе данных

Антон
10.08.2017
13:14:40
я не про устройство
я про задачу которую оно решает в рамках бизнеса

Fedor
10.08.2017
13:14:41
это структура файловой системы
ааа, ну в целом да

Google

Антон
10.08.2017
13:14:49
да всем пофиг :)

Igor
10.08.2017
13:15:48
Может попробовать через бд, создать отдельно таблицу, в которой один image будет иметь ассоциацию ко многим записям

Антон
10.08.2017
13:16:00
почти
в котором один image как сущность с одним image как файл будет иметь возможность прицепиться к множеству объектов
has many
возможно полиморфно, если есть желание

Admin
ERROR: S client not available

Igor
10.08.2017
13:18:38
Но нужно что бы у оригинаьной записи картинка была одна, а у всех скопированных была вторая (которая копия первой)

Антон
10.08.2017
13:19:13
что есть картинка, оригинальная запись, копия?
копия - две одинаковых
копия - ссылка на первую?
картинка - сущность хранящее расположение файла с изображением? или сам файл с изображением?
кароче в этой задаче большая смысловая размытость
все неоперделено

Igor
10.08.2017
13:24:31
На данный момент есть таблица в бд, предположм она называется
Item(author_id, image, parent_id : polymorph)
Владелец Item создаёт запись, эта запись - оригинал.
Далее другой User копирует эту запись (это копия).
Задача в том, что бы не создавать новый файл в системе каждый раз, когда новый юзер делает копию оригинала Item, но при этом что бы изменение файла оригинальной записи не повлекло изменения во всех скопированных записях

Fedor
10.08.2017
13:25:18
эээ
это как

Антон
10.08.2017
13:25:27
ну так нельзя :)

Fedor
10.08.2017
13:25:42
типа файл мы имеем один, но если его изменить, то все остальные начинают иметь другой?

Антон
10.08.2017
13:26:09
но есть событие - изменение оригинальной записи
в этот момент все копии должны стать самостоятельными и не ссылаться на оригинал
но лучше это сделать сразу и не экономить на спичках

Google

Антон
10.08.2017
13:27:35
обслуживать двойственное поведение, когда в однов время копии просто ссылаются на оригинал а в другое время хранят самостоятельные копии - сложно
а ты задачу поставить не можешь нормально, поэтому лучше сразу создавать копии, чтобы они были самостоятельными

Igor
10.08.2017
13:29:19
Когда я говорю копировать, я имею ввиду конено же создать самостоятельную запись, которая будет иметь связь с оригинальной через parent_id
Копируя я могу создавать для каждой скопированной записи новый файл в системе, но тогда собственно и появляется проблема с местом на сервере.
Иметь один файл точно не получится. Суть в том что бы изменения файла оригинала не повлекло за собой изменений в скопированных записях. Но я так же знаю что файл к которому привязаны все копии менятся не будет и не должен

Антон
10.08.2017
13:31:15
это все нелогично
если копии ссылаются не на файл, а на запись, то почему файлы копий должны меняться?
это нужно специально запрограммировать
если специально не программировать проблему - не будет проблемы

Igor
10.08.2017
13:32:04
Копии должны ссылаться на файл, и этот файл не будет меняться

Антон
10.08.2017
13:32:25

Igor
10.08.2017
13:34:52
проблемы нет, есть вопрос который я спрашиваю решал ли кто то, и есть ли тривиальный способ его решения. И так - как связать много записей с одним файлом?
image это attachement, реализован через carrierwave

Антон
10.08.2017
13:35:44
1 запись хранит 1 файл => class Image
объекты, копии, пофиг кто имеют не поле image а референс к Image

Igor
10.08.2017
13:36:21
тоесть как вариант создать отдельную таблицу
?

Антон
10.08.2017
13:36:41
да
столько флуда ради решения из учебника

Igor
10.08.2017
13:39:47
для меня это возможный вариант решения, спасибо. Может для кого то тоже. То что это флуд это субъективное мнение