4

私がやりたいのは、画像をアップロードできるフォームを用意することです。そのオブジェクトを表示すると、画像は特定の div で垂直方向および水平方向に中央に配置されます。サイズ等は不明です。

image_tag ヘルパーを使用して垂直方向に中央揃えする方法がない限り、画像を背景画像として使用できるようにしたいと考えています。私の .css.scss ファイルで、次のようなことができるようにしたい

.image_div {
     background-image: image_url("#{@object.image}");
     background-position: center
}

CarrierWave を使用して写真をアップロードし、 @object.image を出力すると、コンピューター上の画像へのパスが提供されます (したがって、本番環境でパスまたは URL と見なされるかどうかはわかりません)。何か案は?

4

1 に答える 1

20

sass ファイルで erb を使用することは可能ですが、リクエストごとに css を解析する必要があるため (そしてブラウザーはそれをキャッシュできなくなるため)、これは非常に悪い考えです

CSS の 1 つのスニペットをビュー ページのスタイル タグに直接貼り付けることをお勧めします。そうすれば、ページで評価されます。わかる?


UPDATE (要求された例を追加)

これを実際のビューに追加します (例: show.html.erb):

<style media="screen">
  .image_div { background-image: url(<%= @object.image %>); }
</style>

background-position宣言は動的ではないため、css ファイルに残すことができます。@object.image画像への実際のパスを返す必要があるため、@object.imageが Ruby オブジェクトの場合、パスを格納するプロパティ (@object.image.pathまたは@object.image.urlコードベースに適合するもの) にアクセスする必要があります。

于 2013-01-24T02:50:06.273 に答える