ruby-on-rails
2011-02-06 7 views 0 likes 
0

私のパブリックディレクトリ内の場所から画像を表示したいと考えています。私のモデルでは、画像のパスを作成しましたが、showアクションで呼び出すと、文字列が表示されます。ここでファイルの場所から画像を表示

def img_path 
"<img src='/system/assets/10/original/airplane.jpg'>" 
    end 

はhtmlです:

 <td>&lt;img src='/system/assets/10/original/airplane.jpg'&gt;</td> 
+0

これは「より良い」解決策であるため、下の2番目の回答をご覧ください。 – dstarh

答えて

3

あなたはraw

アンエスケープのHTMLに
<%=raw img_path %> 

を使用する必要がありますこれは、内蔵のRailsの

+0

そのパスを動的に設定することは可能ですか? 「」 – van2

+0

のように「」と入力してください。 – apneadiving

+0

はい、正しいです。ありがとうございました。 – van2

5

最善の方法を、セキュリティ対策の一環ですこれを行うには、モデルがimage_pathメソッドを定義していることです。

class Image < ActiveRecord::Base 
    def image_path 
    "/system/assets/#{id}/original/#{filename}" 
    end 
end 

、あなたは画像をImage型

この道のインスタンスである

<%= image_tag(image.image_path) %> 

ような何かを行うことができ、ヘルパー内またはビュー内あなたはエスケープに対処する必要はありませんエスケープ解除の問題。

+0

私はこれがより良い解決策であることに同意しました。なぜあなたのビューにヘルパーがいる場合、あなたのモデルにプレゼンテーションコードを埋め込むのですか? – dstarh

関連する問題