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}):

どこかにルーティングしたいと思っている理由がわかりません。ファイルを適切に作成するには、最初に「public」を付ける必要があるようですが、画像を表示するには「public」を削除する必要があります。何かご意見は?動的に作成された画像/アイテムを処理するためのより標準的なメカニズムはありますか?

一番。

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

4

1 に答える 1

3

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

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

次のようなことを試してみてください:

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

または、URL をデータベースに保存して、次の操作を実行できます。

class Chart < ActiveRecord::Base # or whatever the chart class is
  def chart_file
    "/public#{chart_url}"
  end
end
于 2009-07-07T06:53:33.343 に答える