1

Rails プラグインのペーパークリップは、次のようなモデルでの検証をサポートしています。

validates_attachment_size

唯一の問題は、この検証を使用すると、実際の添付ファイルの検証が強制されるように見えることです。

以下を検証している場合、:ドキュメントが存在しない場合、検証を無視するためにどの条件を使用できますか? (ユーザーがドキュメントを添付せずに親オブジェクトを送信したことを意味します)。

validates_attachment_size :document, :less_than => 5.megabytes, :if => ???

親オブジェクトは :note なので、note.rb ファイルには次のものがあります。

has_attached_file :document

RDoc: dev.thoughtbot.com/paperclip/

4

3 に答える 3

2

添付ファイルの名前がアバターであ:if => lambda { avatar.dirty? }​​ると仮定して、検証ステートメントの後に渡すことができます。例えば:

validates_attachment_size :avatar, :less_than => 500.kilobytes, :if => lambda { avatar.dirty? }

于 2010-10-05T20:36:29.977 に答える
0

:allow_nil => true添付ファイルが存在しない場合に検証をスキップするオプションを追加できます。

于 2010-02-06T19:36:03.033 に答える
0

ファイル名を確認します。

validates_attachment_size :document, :less_than => 5.megabytes, :if => !self.document_file_name.nil?
于 2011-01-18T14:43:39.117 に答える