誰かがこのコードで間違っているものを私に教えてくださいすることができますか...?

StackOverflow https://stackoverflow.com/questions/1090685

質問

私はIMGタグで、既存のHTMLを置き換えるコントローラのコードの部分を持っています。コードは以下の通りである:

 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 の私がどこかにルーティングすると仮定している理由のアイデア。それは私が適切に作成されるファイルのためのために、最初の「公共」を有していなければならないこと、しかし私は、画像を表示するために「公共」で削除する必要がありそうです。何かご意見は?動的に作成されたイメージ/アイテムに対処することにより、より標準的なメカニズムがありますか?

ベストます。

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

役に立ちましたか?

解決

ファイルを追加する場合は、

、あなたはそれが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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top