Второй метод выполняется для значения, которое возвращается из первого метода
Например, рассмотрим строку «ABC»
, затем код "ABC".reverse.reverse
возвращает «ABC»
здесь «ABC» .reverse возвращает строку «CBA», а метод reverse этой строки возвращает «ABC»
В ответ на ваш вопрос @ datasource.partnertype может быть функцией или связанной записью и par_descriptionможет быть другой функцией или связанным столбцом для типа партнера или метода для связанной записи
Поскольку вы указали, что partnertype
является именем таблицы, тогда
partnertype может быть таблицей, которая связана сТаблица источника данных с некоторой ассоциацией, такой как own_to или has_one, или любой другой
. Таким образом, @datasource.partnertype
возвращает связанную запись partnertype
для источника данных, а @datasource.partnertype.par_description
возвращает столбец par_description
для связанного partnertype
Например, рассмотрим таблицы User
и Article
и предположим, что они оба связаны с отношением has_one
, т. Е. Пользователь как одна статьяи Article принадлежит пользователю, а таблица Article имеет столбец с именем description, тогда запрос
@user = User.find(1) //1 us ID here
article = @user.article
. Приведенный выше запрос возвращает запись Associated Article для пользователя, и теперь, если мы запустим article.description
, он вернется, тогда он получитописание для этой статьи
означает несколько запросов в базу данных, которые мы можем использовать
@user.article.description
Затем Ruby выполнит один запрос и вернет описание для нас