есть ли основная функция find_by_controller в ruby ​​на рельсовых фреймворках? - PullRequest
2 голосов
/ 19 марта 2012

Мой первый проект в качестве инженера-программиста - добавление функций в существующее приложение ruby ​​on rails crm.Мне пришлось добавить функцию отправки автоматической электронной почты, которую я просто скопировал и вставил из другого места в программе, где это происходило.Беда в том, что теперь я хочу изменить его.Вот код, который это делает?

recipient = session[:registration][:email]
subject = ManagedContent.get_email_subject("checkout", session[:registration][:id])
message = ManagedContent.find_by_controller("checkout").content_text
RegistrationConfirmationMailer.deliver_registration_message(recipient, subject, message, @registration_transaction.registration.id, render_to_string(:template => "registration_invoices/show.haml", :layout => 'none', :locals => {:registration => @registration_transaction.registration, :event => @registration_transaction.registration.event}) )

Из того, что я понял из этого, сообщение, которое будет отправлено, обрабатывается в третьей строке с помощью функции find_by_controller().Однако я не могу найти эту функцию ни в модели ManagedContent, ни в контроллере.Я даже сделал поиск по всему рабочему пространству для этого проекта, я не нашел никакого определения.Гугл тоже не вернул ничего, что я мог понять.Где я могу найти определение этого метода, так как мне нужно внести небольшие изменения в message

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

find_by_ (field) - это конструкция ActiveRecord, позволяющая найти запись на основе значения поля.

См. http://guides.rubyonrails.org/active_record_querying.html (особенно раздел 14, посвященный динамическим искателям).

Таким образом, вы должны искать столбец «controller» в вашей таблице managed_content.Основываясь на скопированном коде, в этой таблице есть строка со значением «извлечение» для столбца контроллера.В этой же строке значение для поля «content_text» - это значение, которое вы хотите изменить.

PS: Поздравляю с первым выступлением в программе.Наслаждайтесь этим пока еще незапятнанным.:)

1 голос
/ 19 марта 2012

Если ваш ManagedContent является классом ActiveRecord, выполнение find_by_controller создает запрос SQL к вашей таблице ManagedContent для ограничения на controller столбцы.

Все в dynamic finder документации

...