Соглашения об именах вплоть до переменных экземпляра? - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть модель ProductFeature

контроллер под названием product_feature_controller.rb

Я пишу метод редактирования моего CRUD для этого контроллера. В методе редактирования я создал переменную экземпляра с именем @productFeature и установил ее равной ProductFeature.find(:id), и я отправил эту переменную экземпляра в мое представление для использования form_for(:product_feature). Я обнаружил, что моя форма не будет заполнять свои поля текущими данными из записи, которую я собираю. После нескольких часов стрижки волос до меня дошло, что моя ошибка была названа моей переменной экземпляра.

Он должен называться @product_feature вместо @productFeature. Это кажется тривиальной деталью, но мне бы очень хотелось узнать, почему это так. Как это вообще работает? Я имею в виду, как Rails знает, как заполнять мою форму в зависимости от того, как названа переменная экземпляра? Я надеюсь, что мой вопрос ясен, просто ищу дальнейшего назидания.

1 Ответ

1 голос
/ 13 ноября 2011

Поскольку символ :product_featureform_for) будет искать переменную экземпляра на основе этого символа. Он не выполняет никаких преобразований и будет искать переменную @product_feature. Пока они совпадают, вы должны быть в порядке, но мир Ruby использует подчеркивание между словами.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...