Где рельсы вид находит эти методы? - PullRequest
0 голосов
/ 25 марта 2020

Я работаю с Rails с почти 1 года, и, как ученик, самым трудным вопросом для меня является материал для просмотра.

У меня есть файл представления, который включает это: <%= index %>. Я попытался найти, где этот метод определен в коде. Я искал и нашел 12 определений для index, но ни одно из них не было помощником. Я гуглил его (иногда странные имена, такие как options_from_collection_for_select OMG: <>, кажется, являются частью библиотеки ActionView), я также не нашел его в представлении действий.

Так что у меня была эта проблема несколько раз и Не удалось выяснить, как представление автоматически находит этот метод.

Не могли бы вы указать мне, где искать?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Один простой способ узнать, где и как определяется метод, это использовать pry-byebug binding.pry.

Вы можете поместить <% binding.pry %> в свой файл просмотра, перезагрузите страницу, а затем просмотрите источник нужного метода, введя show-source method_name в командной строке, которая появилась в выходных данных вашего сервера Rails. (show-source index в вашем случае.)

0 голосов
/ 25 марта 2020

Вы должны использовать метод ruby source_location, чтобы узнать, где определен метод.

Но вам нужно выполнить его в контексте, к которому у вас есть доступ. Так что, если это помощник, то вы можете, в rails console, попробовать что-то вроде helper.method(:index).source_location

Если это не помощник (как это не выглядит), то попробуйте добавить разрыв укажите, например, и запустите method(:index).source_location, вы сможете найти его

Но вы уверены, что это не локальная переменная, заданная при вызове частичного или из блока each_with_index? Действительно странно называть индекс метода без контекста: /

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