2016-05-27 7 views
0

私はRORを初めて使っています。私はspree gem拡張に取り組んでいます。私は電子メールのテンプレートを動的にすることを意味しますhtml.erbファイルの内容はデータベーステーブルに格納する必要があります。メールを撮影すると、すべてのデータと動的データが管理されます.. ??それは可能であり、これを達成する方法は?ダイナミックテンプレートを作成するには...

+1

あなたが必要なものの例を提供することができればそれは非常に役に立ちます。あなたができることは電子メールのいくつかのテンプレートを持っているということです(例えば、 "あなたが好きだったアイテム"、 "あなたが好きかもしれないアイテム"など)またはイベント "好きなアイテム - 女性バージョン"/"好きなアイテム - 男性バージョン" )。したがって、あなたのコントローラの電子メールのテンプレートを変更することができます。次に、テンプレートを選択したら、データベースからのデータを通常のビューと同様に使用できます。したがって、コントローラではデータを取得し、テンプレートに渡すことができます。 – Pholochtairze

+0

"\ {@ service_requests.category.name}のサービスリクエスト番号#{@service_requests.id}を正常に登録しましたので、担当者がすぐに連絡を取ります。この文字列はデータベースに格納されます。 @service_requestsは動的オブジェクトです。 – vicky

答えて

1

はいあなたはこのようなDBで動的変数置き換え、次のように行うことができます:あなたは成功し、{} service_requests_categoryのためにサービスリクエスト番号{service_requests_id}を置いている

を。私たちの代表者はすぐに同じことをあなたに連絡します。 。。

この文字列は、データベースに格納され、」ありがとうとヘルパーを作成

def replace_dynamic_variables(str,variables=nil) 
    variables.each do |k ,v| 
     str = str.gsub('{' + k.to_s + '}',v || "") 
    end 
    return str.html_safe 
    end 

とメーラー上のような変数の準備:

class yourMailer < ApplicationMailer 

    def send_service_email(args) # email sending method 
    @variables = {} 
    # Other code like subject, to, from etc. 
    @db_string = #string you get form DB 
    @variables[:service_requests_id] = @service_requests.id 
    @variables[:service_requests_category] = @service_requests.category.name 
    #mail to: 

    end 
end 

とsend_service_email.html.erb/send_service_emailでは。 txt.erbあなたのケースのどんなスイートでもお電話ください

<%= replace_dynamic_variables(@db_string,@variables)%> 

私はテストしませんでしたが、希望しません彼はあなたのために働くでしょう

関連する問題