2015-02-15 2 views
0

много разочарования многим людям. Я решил научиться Ruby on Rails (мне сказали многие люди, это бессмысленно изучать его, но рубин, похоже, легко влезть, а рельсы - это веселый фреймворк).Использование именования/использования капитализации в Ruby on Rails 4

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

У меня есть некоторые проблемы с поиском краткой информации о капитализации и использовании в нижнем регистре.

Пример будучи

@order = Order.create(order_date: Time.now, customer_id: @customer.id)

Почему именно 'Order.create' капитализируется, но не "ORDER_DATE?

Когда для вызова капитализации действительно запутался, когда я использую консоль рельсов. Я не знаю, когда я предполагаю, что я буду использовать его в качестве капитализации или почему. Я хочу сказать, что это тоже связано с схемой именования модели/контроллера, но ни одна из них не является множественной, так что это не может быть правильным ответом?

Спасибо за любую помощь, которая дана, я действительно буду/ценю ее.

ответ

0

Это на самом деле вещь рубина. В рубине вы используете капитализацию (случай верблюда) для имен классов и модулей. И snake_case для имен методов и переменных.

В вашем конкретном случае Заказ - это класс, create - это метод, @order - это переменная экземпляра. order_date и customer_id - это символы, которые представляют столбцы в базе данных.

+0

Спасибо, я как раз собирался спросить о @order. Итак, переменные экземпляра, такие как локальные переменные, которые работают только в том месте, где они определены правильно? – BronzeTax

+0

Переменные экземпляра доступны в контексте объекта. Как имя указывает (экземпляр класса -> объект). –

1
  • CamelCase используется для классов и модулей (например, String, Array и т.д.)
  • snake_case используется для переменных и методов (символы также обычно snake_case)
  • SCREAMING_SNAKE_CASE используется для обозначения констант (например, STDOUT)
+1

Никогда не слышал о том, что SCREAMING_SNAKE_CASE называется :), но кажется адекватным. –

1

Это связано с соглашениями об именах в Ruby и/или Rails.

правило:

  • Создание классов, модулей с использованием CamelCase.
  • Создание методов, переменные с использованием underscore_case.
  • Создать константы, используя UPPER_UNDERSCORE_CASE.

Посмотрите на различные методы, доступные в ActiveSupport, чтобы преобразовать строку в различные случаи. http://apidock.com/rails/v4.1.8/String/camelize

Read Naming and Schema Conventions at Rails Guide.

A more succinct information.

HTH

+0

Спасибо за ресурсы. Нашел другой поток на некоторых полезных материалах Rails (и Ruby) и добавит их в список. В настоящее время я безработный, поэтому я трачу 8 часов + на день. И все ответы определенно помогают. Мне надоело говорить, что я не могу научиться программировать. – BronzeTax

Смежные вопросы