デフォルトでは、 Attach Fuはアップロードされたファイルを に保存し"public/#{table_name}"ます。これを のようなものに変更したいのですが"public/#{table_name}/#{site_id}"、site_idはモデルのプロパティです。self.site_id使用してみましたが、両方とも失敗することに注意してください。
has_attachment :storage => :file_system,
:max_size => 25.megabytes,
:path_prefix => "public/#{table_name}/#{site_id}",
:thumbnails => {
:large => '256x256>',
:medium => '128x128>',
:small => '64x64>'
}
「undefined local variable or method site_id」というエラー メッセージが表示されます。#{site_id}コンポーネントを正常に削除する:path_prefixと、initializeメソッドが実行されます。期待通りにアクセスできますsite_id。
次のようなinitializeメソッドがあります。
def initialize(site_id = nil)
super(nil)
self.site_id ||= site_id
end
次のように、Rails コンソールを介してオブジェクトをインスタンス化します。
r = Resource.new(100)
メソッドはhas_attachment私のメソッドの前に実行されていinitializeますか? :path_prefixモデルがインスタンス化されたときにパラメータを動的に渡すにはどうすればよいですか?