При вызове методов в приложениях Rails, что такое соглашение использовать круглые скобки или нет? - PullRequest
0 голосов
/ 03 февраля 2012

Что делает подавляющее большинство магазинов Rails?Поскольку Ruby допускает и то, и другое, я уверен, что есть определенный стандарт, и я, вероятно, должен заняться созданием привычки, поскольку я только начинаю с Rails.

Согласно Pragmatic Agile Web Development с Rails (4-е издание):

В приложениях Rails вы обнаружите, что большинство вызовов методов, задействованных в больших выражениях, будут иметь круглые скобки, тогда как те, которые больше похожи на команды или объявления, как правило, их не имеют.

Так что же это?Или это дикий запад там?

1 Ответ

6 голосов
/ 03 февраля 2012

Руководство по стилю Rails , кажется, одобряет

my_method(my_param)

более

my_method my_param

Но большая часть кода, который я видел, похоже, отражает эту тенденцию. Я бы определенно сказал, что вы не должны использовать открытые скобки для вызова метода без параметров. Единственный руководящий принцип, который я заметил, - это подчеркнуть удобочитаемость кода. Это приводит меня к следующим выводам:

Не используйте скобки, если Ваш вызов метода не имеет аргументов

my_object.my_method

Ваш вызов метода - единственная вещь в строке

my_object.my_method my_params
form.submit "Create"

Используйте скобки, если Ваш вызов метода находится на той же строке, что и количество вызовов метода

my_object.parse(my_arguments).join(", ").chomp

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

validates     :first_name,
              :presence => true,
              :format => { :with => /\S./ }
...