2009-07-07 14 views
0

私は既存のHTMLをIMGタグで置き換えるコントローラのコードセクションを持っています。誰かがこのコードで何が間違っているか教えてください...?

render :update do |page| 
    page.replace_html "chart-div", "<img src=\"#{chart.chart_file}\"/>" #chart.chart_file is a path 
end 

を何らかの理由で、私は次のエラー受信し続ける:コードは以下の通りである。

ActionController::RoutingError (No route matches "/public/charts/1_WEEKLY_ACTUAL_LINE.jpg" with {:method=>:get}): 

を、私がどこかのルートにしたいと仮定している理由私はNOアイデアを持っています。ファイルを適切に作成するには、最初に「パブリック」を持っている必要がありますが、イメージを表示するには「パブリック」を削除する必要があります。何かご意見は?動的に作成されたイメージ/アイテムを扱うためのより標準的なメカニズムがありますか?

ベスト。

注:プラグインを「アップロード」しないでください。すべてのファイルはシステムによって作成され、アップロードはありません。

答えて

3

ファイルを追加するときにファイルシステムに追加します。ファイルシステムはRAILS_ROOT/public/charts/1_WEEKLY_ACTUAL_LINE.jpgにあります。

ファイルを表示するには、そのファイルを指すURLが必要です。 publicディレクトリに格納されたファイルは、publicディレクトリに対する相対パスでアクセスされます。

あなたはこのような何かみてください:あなたは、データベース内のURLを格納し、行うことができ、

class Chart < ActiveRecord::Base # or whatever the chart class is 
    def chart_url 
    chart_file.gsub(%r{^/public}, "") 
    end 
end 

をまたは:

class Chart < ActiveRecord::Base # or whatever the chart class is 
    def chart_file 
    "/public#{chart_url}" 
    end 
end 
関連する問題