2012-03-19 3 views
2

ソフトウェアエンジニアとしての私の最初のプロジェクトは、既存のruby on 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()関数を呼び出すことによって、3行目に細工されている送信するメッセージ。しかし、私はManagedContentモデルまたはコントローラのいずれかでその機能を見つけることができません。私はこのプロジェクトのワークスペース全体のgrep検索を行っただけで、定義は見つかりませんでした。グーグルも私が意味することができるものを返さなかった。ここで私はこのメソッド定義を見て、少し修正する必要があります。message

ありがとうございます!

+0

あなたはManagedContentオブジェクトとは何ですか? – shingara

答えて

2

find_by_(フィールド)であるあなたは、フィールドの値に基づいてレコードを検索させるActiveRecordの建設です。

http://guides.rubyonrails.org/active_record_querying.html(特にDynamic Findersのセクション14)を参照してください。

したがって、managed_contentテーブルの「コントローラ」列を探す必要があります。コピーしたコードに基づいて、コントローラの列に「チェックアウト」という値を持つ行がそのテーブルにあります。その同じ行では、 "content_text"フィールドの値が変更したい値になります。

PS:あなたの最初のソフトウェアギグのおめでとう。それでも楽しむことができます。 :)

+0

Wonderful!そのような答えをありがとう!最後に、grepはすべてのコードを読むことに対する答えではないことを学びます... –

1

ManagedContentがActiveRecordクラスの場合、find_by_controllerを実行すると、controller列の制限を行うManagedContentテーブルに対してSQL要求が生成されます。

すべてがdynamic finderドキュメント

+0

実際、私のManagedContentはActiveRecordクラスです。あなたが話すドキュメンテーションをチェックしましょう:) –

関連する問題