0

さて、私は再び立ち往生しています。今回は、設計されていない方法でツールを使用している可能性があります。

私は画像の添付に Paperclip を使用しており、これらの画像を Image というモデルのインスタンスとして保存しています。画像はユーザーのものです。ユーザーには多くのイメージがあります。

ただし、ユーザーの画像の 1 つをデフォルトの画像として指定したいと考えています。したがって、私の脳は、デフォルトにしたい画像の ID を保持するために User テーブルにフィールドを追加する必要があることを教えてくれます。

画像は has_attached_file を使用します。ユーザーに独自の添付ファイルを持たせたくありません。ユーザー モデルが、url ヘルパー メソッドを使用できる画像の特定のインスタンスを参照できるようにしたいだけです。

ID を使用してこの画像の URL を取得しようとすると、問題が発生します。私がやろうとしていることがペーパークリップを使用して不可能であるか、関連付けが正しく設定されていません。

基本的に、ユーザーモデルのインスタンスを使用して、ビューでその画像にアクセスできるようにしたいと考えています。そう:

<%= image_tag @user.image.url %>

しかし、これはうまくいきません。うまくいかない理由はわかるが、作り方が分からない

@user.image

URL を取得するためのメソッドが関連付けられた魔法のクリップ オブジェクトのインスタンスです。

基本的に、画像 ID を使用してクリップ画像の URL を取得する方法を知っていれば、私は成功するでしょう。手がかりはありますか?

4

1 に答える 1

0

image オブジェクトからクリップ画像の URL を取得できると思いますか?

もしそうなら、これをユーザーモデルに追加してください:

def image_url
  Image.find( self.image ).url
end

ユーザーモデルの「画像」列に保存されたデフォルトの画像のIDと、画像モデルの「url」列にある画像のURLを取得したら、これを実行できるはずです。

@user.image_url

そして、これはあなたの「デフォルト」画像のURLを返すはずです

于 2012-04-22T00:02:04.257 に答える