я имел некоторый код, который выглядел примерно так:Рубите спасательный и лучшей практику синтаксис
foo = SomeActiveRecordModel.where(bar: 10).first.foo rescue ''
После того, как я начал использовать Rubocop он кричал на меня спасательный синтаксис там. Таким образом, я полагал, что было по крайней мере два других способа написания этого кода они являются:
foo =
begin
foo = SomeActiveRecordModel.where(bar: 10).first.foo
rescue NoMethodError
''
end
И:
foo = SomeActiveRecordModel.where(bar: 10).first
foo.present? ? foo.foo : ''
Какой из этих способов было бы предпочтительнее, или есть альтернативный способ, который является предпочтительным ?
Из любопытства, где вы используете это? Я вижу, что все три ответа объединены, чтобы быть выдающимися. Но если вы используете это в контроллере, возможно, перемещение метода метода 'where' вызовом' scope' или 'class method' в' SomeActiveRecordModel' может быть приятнее. – vee
Это используется в методе класса. Он используется для захвата любых правил, существующих из базы данных, и применения этих правил к sql-запросу. – CarlyL