5

Paperclip を使ってフォト ギャラリー/ストアを作成してみました。ギャラリーには多くの写真があり、写真はギャラリーに属し、ユーザーは多くのギャラリーを持つことができます。ペーパークリップのデフォルトは /:class/:style/:basename.:extension のようになります。ただし、ギャラリーのセットアップでは、/:class/:user_name/:gallery_name/:styles/:basename.:extension のようなものが必要です。これらのストレージの場所を動的に作成するために、オブジェクト内の変数にアクセスする方法をまだ見つけていません。

これを行う方法はありますか?

パスに #{variable} を使用しようとしましたが、うまくいきません。これらの写真オブジェクトは @gallery.photos.build を使用して作成されているため、gallery_id にはアクセス可能な値が既に含まれているはずです。

4

2 に答える 2

8

Thoughtbot.comのヒントと最新情報セクションをご覧ください。独自の補間変数をパス/URL に追加する方法について説明します。

于 2010-12-11T20:20:54.283 に答える
4

@zetetic の回答は少し古いです (ブログ投稿は 2008 年のものです) カスタム補間を作成する現在 (2015 年) の方法は、paperclip wikiで説明されています。したがってuser_name、質問の場合、おそらく次のようなものです。

# interpolate in paperclip
Paperclip.interpolates :user_name  do |attachment, style|
  attachment.instance.gallery.user.name
end
于 2015-05-25T16:38:07.923 に答える