2012-03-19 67 views
2

我作爲軟件工程師的第一個項目是在rails crm應用程序中爲現有的ruby添加功能。我不得不添加用於發送自動電子郵件的功能,爲此我只是從程序中的其他地方複製並粘貼了該電子郵件,發生了這種情況。麻煩的是,現在我想修改它。這是它的代碼嗎?ruby​​ on rails框架中是否有任何核心函數find_by_controller?

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模型或控制器中找到該功能。我甚至對這個項目的整個工作區進行了grep搜索,但沒有找到任何定義。谷歌搜索也沒有返回任何我可以理解的。我在哪裏可以找到這種方法定義,因爲我需要在message

中稍作修改謝謝!

+0

你是什麼ManagedContent對象? – shingara 2012-03-19 08:52:35

回答

2

find_by_(場)是一個ActiveRecord建築讓你找到基於字段的值的記錄。

請參閱http://guides.rubyonrails.org/active_record_querying.html(特別是關於動態搜索器的第14章)。

因此,您應該在managed_content表中尋找「控制器」列。根據您複製的代碼,該表中有一行的值爲控制器列的「checkout」值。在同一行中,「content_text」字段的值是您想要更改的值。 PS:恭喜你的第一次軟件演出。享受它,同時還沒有污染。 :)

+0

太棒了! - 謝謝你這樣的回答!最後,我瞭解到grep不是所有代碼閱讀的答案。 – 2012-03-19 09:15:33

1

如果您的ManagedContent是ActiveRecord類,則執行find_by_controller會在您的ManagedContent表上生成SQL請求,以對controller列進行限制。

所有在dynamic finder文檔

+0

事實上,我的ManagedContent是一個ActiveRecord類。讓我看看你說的文檔:) – 2012-03-19 09:01:36

相關問題