2016-11-06 5 views
0

私は誰でもテキストを入力すると同時に誰かに電子メールを入力してフォームを送信できるテキストベースのフォームを持っています。フォームを送信すると、そのshowアクションは、この画像のようになります。Ruby on Railsで電子メールリンクとしてフォーマットされたテキストフィールドで電子メールを提供する方法

enter image description here

コードがテキストで提供されたWebリンクが、電子メールのために働くメールリンクとしてフォーマットされ、通常のテキストとして出てきていません。私はブラウザからソースコードをチェックすると、提供された電子メールにhtmlタグが追加されず、テキストとしてレンダリングされていないことがわかります。

テキストフィールド で提供される電子メールにhtmlタグを入力すると、プレビューに実際の電子メールアドレスが表示されます。

form.html.erb

<%= simple_form_for @job do |f| %><br> 
    <%= f.input :to_apply, label: 'How do people apply for this job?', placeholder: 'Example: Send a resume and cover letter to [email protected]' %><br> 
<% end %> 

モデル:job.rb

class Job < ActiveRecord::Base 

    validates :to_apply, 
      presence: true 
end 

答えて

1

sanitize電子メールをスキャンし、ユーザーが入力した可能性のあるタグを削除するテキストアドレスがgsubおよびmail_toヘルパーに置き換えられた場合は、文字列がであることを示しますビルドこれを行うためのヘルパーメソッド...あなたの意見で

class ApplicationController 

    helper_method :mailify 

    def mailify(text) 
    new_text = text.to_s.dup.sanitize 
    new_text.scan(/\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b/i).each do |email| 
     new_text.sub!(email, view_context.mail_to(email)) 
    end 
    new_text.html_safe 
    end 

end 

は...

<%= mailify(@job.to_apply) %> 
+0

これはそれのより多くの音。私はこのコードを 'form template'で指定するのか、' model file'で指定するのですか? –

+0

どちらもビューヘルパーである必要があります。私は旅行していますが、私は今日これを反映するために私の答えを更新することができます。あるいは、レールヘルパーを研究することもできます。 – SteveTurczyn

+0

さて、安全な旅。私は確かにあなたを待つでしょう。これは、雇用者が就職のためのデータを提供する就職掲示板のためのものです。モデルとフォームを反映するように質問を更新しました。 –

関連する問題