2012-01-26 4 views
1

写真とプロパティの2つのモデルがあります。プロパティhas_many写真。 paperclip経由で写真をアップロードするときは、ディレクトリ構造をproperties/the_property_id /:id::styleのようにしたい(もちろん、2番目の:idは画像のIDなので、どのモデルが入っているか)。ペーパークリップのパラメータを使用する:urlオプション

写真は、プロパティモデル(accepts_nested_attributes_for)で追加および編集されます。したがって、プロパティ編集ページを表示している間、私はプロパティID(params [:id])を写真モデルに渡す必要がありますので、クリップは次のようなものを使用できます:url =>properties/params[:id]/:style/:id.:extension (プロパティ/ 6/small/2.jpg)

これを行う最善の方法をアドバイスしています...このタスクをどのように達成しますか?

答えて

1

ペーパークリップ補間を使用する必要があります(詳細についてはhttps://github.com/thoughtbot/paperclip/wiki/Interpolationsを参照)。そして、あなたはこのような何かを持つことができます。

Paperclip.interpolates :param_value do |attachment, style| 
    attachment.instance.property.params[attachment.instance.id] 
end 

をそして、このような方法であなたのモデルでそれを使用します。

:url => properties/:param_value/:style/:id.:extension