Size: a a a

2018 October 23

FY

Felix Yasnopolski in Rubyata
странно
источник

AO

Adis O in Rubyata
https://medium.flatstack.com/query-object-in-ruby-on-rails-56ea434365f0 - да и в целом раньше когда игрался с query object'ами, то передавал в параметре ActiverRecordQuery, но по моему также юзал хак с where('1=1')
источник

AO

Adis O in Rubyata
всё потому что думал, что all сразу фетчит все записи
источник
2018 October 24

D

Daniel in Rubyata
Adis O
posts = Post.where('1=1')
 .where(status: 'published')
 .where(published_at: 2.days.ago..Time.now)

есть возможность where('1=1') заменить на что-то другое? может встроенное в AR?
where(nil)
источник

RS

Rustam Sharshenov in Rubyata
дело не в all, where и тд

если в консоли вобъешь запрос
posts = Post.all

то произойдет запрос.
Если тот же код запишешь в файл и его исполнишь, то запроса в БД не будет.
Все потому, что  Post.all - это ActiveRecord::Relation. И пока ты не пытаешься работать с _результатом_ запроса, запроса не будет.
источник

RS

Rustam Sharshenov in Rubyata
Когда работаешь в консоли, результат вбитого выражения распечатывается, для чего вызывается #inspect у объекта Post::ActiveRecord_Relation, поэтому и происходит запрос в базу
источник

RS

Rustam Sharshenov in Rubyata
Так же у любого релейшена можно вызвать метод #to_sql и посмотреть, какой SQL-запрос сформирован
2.5.1 :006 > User.all.to_sql
=> "SELECT \"users\".* FROM \"users\""
2.5.1 :007 > User.where("created_at > ?", 1.day.ago).to_sql
=> "SELECT \"users\".* FROM \"users\" WHERE (created_at > '2018-10-23 03:03:36.787374')"
источник

RS

Rustam Sharshenov in Rubyata
Denis Oster
Привет ребята. Что не так с валидациями?
1.
NameError: uninitialized constant Comment::SizeValidator

validates :attachment, size: true, maximum: 10.megabytes, message: 'should be less than 10MB'

2.
ArgumentError: Either :with or :without must be supplied (but not both)

validates :attachment, format: true, with: /\.(jpg|png)\Z/i, message: 'should be jpg or png'
validates :attachment, format: true, with: /\.(jpg|png)\Z/i, message: 'should be jpg or png'

перепиши так:
validates :attachment, format: { with: /\.(jpg|png)\Z/i, message: 'should be jpg or png' }
источник

KO

Kalys Osmonov in Rubyata
Adis O
вот этот вариант не робит
Post \
 .where(…
источник

DO

Denis Oster in Rubyata
Rustam Sharshenov
validates :attachment, format: true, with: /\.(jpg|png)\Z/i, message: 'should be jpg or png'

перепиши так:
validates :attachment, format: { with: /\.(jpg|png)\Z/i, message: 'should be jpg or png' }
Валидация по рассширению файла заработала. А вот по размеру нет.
Unknown validator: 'SizeValidator'
источник

DO

Denis Oster in Rubyata
Рабочии валидации.
validates :attachment, length: { maximum: 10.megabytes, message: 'should be less than 10MB' }

validates :attachment, format: { with: /\.(jpg|png)\Z/i, message: 'should be jpg or png' }
источник

NK

ID:658094108 in Rubyata
Hello
источник

RS

Rustam Sharshenov in Rubyata
TIL:
NotImplementedError - опасная ошибка. Ее часто используют(по крайней мере я) для того, чтобы "застолбить" метод, который в наследующихся классах надо переопределить. А опасность в ее "предках" - NotImplementedError, ScriptError, Exception, .....
Это ошибка не из подтипов StandardError.
Таким образом, если вы ловите ошибки так
begin
 # my code
rescue
 # error handling
end

то ее не поймаете 🙁
источник

AK

Aleksey Kuznietsov in Rubyata
а на кой ляд ее ловить?
источник

AK

Aleksey Kuznietsov in Rubyata
это именно рантайм ошибка для разработчиков, именно чтобы сообщить что ты не дописал код... ловить ее и игнорить как-то тупо
источник

MS

Mikhail Sytchev in Rubyata
+
источник
2018 October 25

RS

Rustam Sharshenov in Rubyata
Конкретно в этот раз обнаружил, что эта ошибка может намертво подвесить коньсюмера Sneakers
https://github.com/jondot/sneakers/pull/373

А еще есть такая вещь, как метапрограммирование, где "недописанный" код может быть следствием других факторов.

Ну и я не говорил, что ее надо игнорить. Обработка ошибок - это не тоже самое, что игнор
источник

KO

Kalys Osmonov in Rubyata
Не используй NotImplementedError. Но должен рейзить только сам руби. https://airbrake.io/blog/ruby-exception-handling/notimplementederror
источник

AD

Anton Davydov in Rubyata
Кстати, не согласен тут
источник

AD

Anton Davydov in Rubyata
Если ты пишешь библиотеку - вполне удобно его использовать
источник