
Loris
03.10.2017
11:34:50
а копейки как считать? умножать на 100?

Igor
03.10.2017
11:35:45
если int то хранил бы сразу копейки

Sergey
03.10.2017
11:35:59
валюта одна?

Igor
03.10.2017
11:36:02
нет

Google

Sergey
03.10.2017
11:36:49
В тунисе 1 динар == 1000 чего-то. Если интом хранить, тут костыли нужны будут.
Еще какие-то валюты тоже возможно понадобиться умножать не на 100

Mighty
03.10.2017
11:37:50

Sergey
03.10.2017
11:38:03
+ decimal

Loris
03.10.2017
11:38:46
для int может оказаться 32 бита, т.е. 21/42 миллиона всего. +1 к deciamal

Igor
03.10.2017
11:38:50
я изначально думал хранить US центы как integer в базе, потом уже делить и отдавать BigDecimal. но почитал, и пишут что можно хранить сразу в децимал
и в случай с децимал всё так же хранить копейки?

Mighty
03.10.2017
11:41:16

Stanislav
03.10.2017
11:41:51
проще всего decimal да, который конвертируется в bigdecimal, не будет потерь точности как у флоатов )

Igor
03.10.2017
11:42:35
Благодарю

Антон
03.10.2017
11:47:34
нет
есть же gem money и money-rails

Mighty
03.10.2017
11:47:46
есть
И он делает очень веселые вещи когда хранишь во float и делаешь конверсии

Google

Антон
03.10.2017
11:48:18
туда-сюда суммы не совпадают?

Stanislav
03.10.2017
11:48:47

Mighty
03.10.2017
11:48:59

Balaklun
03.10.2017
12:08:46
кто может помочь по руби?дайте в лс

Anton
03.10.2017
12:08:53
спрашивай тут

Смерть
03.10.2017
12:10:18
может у него личное, что стыдно на людях показывать

Vasiliy
03.10.2017
12:10:46
у меня слишком короткий метод, это нормально?

Balaklun
03.10.2017
12:18:33
массив из 5 элементов, найти все числа, что есть больше среднего арифмитического

Fedor
03.10.2017
12:24:19
Ну посчитай среднее арифметическое и используй select
Что бы среднее считать пригодятся sum и length

Anton
03.10.2017
12:25:31
прямо решение

Fedor
03.10.2017
12:25:45
Не надо так
Надо заставлять людей думать
Хотя бы каленым железом

Nikita
03.10.2017
14:40:26
ребят, кто может подсказать, нужно в feature тест при определенном действии отправлять файл в экшн, делаю:
attach_file('import_base_file', "#{Rails.root}/spec/fixtures/cepsa.xls")
но в параметрах в экшн он (файл) не приходит
соответственно нет валидации, соответственно нужного контента на странице нет
естественно гуглил

Alex
03.10.2017
14:59:53
в первом аргументе что указываешь?

Nikita
03.10.2017
15:01:32
да вот только что решил проблему, версия PhantomJS была некорректно работающая, поставил 2.1.1 - завелось нормально.
в 1 аргументе указываю id)

Google

Baryskhan
03.10.2017
15:55:39
всем привет
у меня че-т комментарий не показывает
паршл выглядит вот так
<% @post.comments.each do |comment| %>
<hr />
<div class="comment clearfix">
<div class="comment_content">
<p class="comment_body"><%= comment.body %></p>
<p class="comment_body"><%= user.email %></p>
<p class="comment_time"><%= time_ago_in_words(comment.created_at) %></p>
</div>
</div>
<hr />
<% end %>
а вот контроллер
def index
@post = current_user.posts.build
@comment = @post.comments
respond_with @posts = Post.all.order('created_at DESC')
end
хотя если добавляю коммент, он показывает, если обновить, то нет

Igor
03.10.2017
17:29:38
Что делать если модель слишком жирная но вся логика в ней относится только к этой модели?

Mighty
03.10.2017
17:31:40

Igor
03.10.2017
17:32:03
например?

Mighty
03.10.2017
17:33:18

Igor
03.10.2017
17:33:30
вопрос скорее куда вынести эту логику в иерархии файлов рельсы

Mighty
03.10.2017
17:33:57
В иерархии файлов рельсы нет идеологии кроме той что у тебя на уровне с папками моделей и контроллеров может жить все что угодно
начиная от actors, заканчивая workers

Igor
03.10.2017
17:41:50
яснопонянто

a
03.10.2017
19:46:17
Доброго времени суток. Ребят, помогите, я правильно создал модель User?
У пользователя может быть много фотографий.
У пользователя может быть много комментариев.
У пользователя есть комментарии, оставленные под фотографиями.
User
1. has_many :photos
2. has_many :comments
3. has_many :photos, through: :comments
Я со связью has_many :through разобраться не могу.

Sergey
03.10.2017
19:55:39
привет, зависит от того, что ты хочешь получить в итоге
это смотрел? http://rusrails.ru/active-record-associations#the-has-many-through-association

Mighty
03.10.2017
19:56:16

Google

Alexander
04.10.2017
07:05:04
сорри, промахнулся

A1ex Lopatin
04.10.2017
07:07:19
redis под eventmachine с помощью em-hiredis,
как прочитать значение из редиса?
такой метод:
24: def return_long_url(code)
25: shorty = assemble_short_url(code)
=> 26: binding.pry
27: @redis_server.get(shorty).callback { |long_url|
28: long_url
29: }
30: end
возвращает <EventMachine::DefaultDeferrable:0x007f988a2178a0>, а нужно long_url
Подскажите, кто дело имел.

Alexander
04.10.2017
07:56:59
Всем привет.
Кто-нибудь деплоил приложение 5.0 с вебпакером с помощью капистрано?

Maxim
04.10.2017
07:58:37
а в чем проблема его задеплоить?

Alexander
04.10.2017
08:08:04
падает на assets:precompile, точнее на webpacker:compile, пишет yarn install, а затем валится на версии node, мол я использую 4.2.6 хотя такой версии в системе нет, я ставил node с nvm только одну версию v6...

Maxim
04.10.2017
08:10:40
у меня тоже наду поставленную через nvm не подхватывало, в общем сервер конфигурирую через ansible, ноду ставил через эту роль - ansible-role-nodejs
все нормально пашет
https://github.com/geerlingguy/ansible-role-nodejs

Admin
ERROR: S client not available

Alexander
04.10.2017
08:13:10
спасибо, попробую.

Nikita
04.10.2017
08:53:41
гайс, а субъективно (или объективно если возможно) - чем binding.pry лучше byebug?

Fedor
04.10.2017
08:55:53
праем
почитай про его возможности в доке на гитхабе
там огромный набор инструментов не только для дебага, но и вообще для исследованяи кода изнутри

biert
04.10.2017
08:59:14
нужно мнение експертов, говнокод или нет

Anna
04.10.2017
09:03:41
херня какая-то

Nikita
04.10.2017
09:05:53
@biert у геокодера же есть метод near

biert
04.10.2017
09:07:45
спасибо за наводку

Nikita
04.10.2017
09:08:31
@biert я точно не помню, но вроде-бы он возвращает дистанцию, отсортировал по ней и забрал первого

Google

Nikita
04.10.2017
09:09:57
@biert https://stackoverflow.com/questions/11463940/rails-geocoder-and-near
а, ну вот твой случай
с ордером, первого забирай и все
вот тебе и nearest_driver

biert
04.10.2017
09:12:29
моя ты хорошая
херня какая-то

Anton
04.10.2017
09:13:34
ну, на мой взгляд выглядит слишком запутанно и местами излишне

biert
04.10.2017
09:14:06
да, я тоже так вижу, но пока хочу сделать чтобы работало, а потом рефакторить

Anton
04.10.2017
09:14:13
как минимум, можно от вложенности отказаться строчкой return if drivers.empty?

Nikita
04.10.2017
09:14:15
да я тебе дал ссылку на sa
забери первого с массива, да и все

Gleb
04.10.2017
09:14:40
ну уж driver ||= 0 то тоже можно убрать и поставить дефолтное значение для параметра

Артур
04.10.2017
09:14:46
это ты че прям в модели такие методы большие держишь ?

biert
04.10.2017
09:16:38
куда посоветуешь перенести

Anton
04.10.2017
09:17:19
в отдельные классы?

Артур
04.10.2017
09:17:56
тесты пишешь под это дело ?

Gleb
04.10.2017
09:18:26
куда посоветуешь перенести
https://github.com/collectiveidea/interactor
http://trailblazer.to/gems/operation/2.0/index.html
https://github.com/dry-rb/dry-transaction

biert
04.10.2017
09:20:40
я пока не разобрался еще нормально с со всем этим, спасибо вам
но я не могу понять поймет ли оно где искать в базе
Driver.near([self.user.latitude, self.user.longitude], MAX_DISTANCE_FOR_DRIVER, :units => :km)
create_table "drivers", force: :cascade do |t|
...
t.float "latitude"
t.float "longitude"
...
end