2

モデルには、アップロードを行う前に疑わしい添付ファイルがあるかどうかを確認する方法があります。バット 。と 。EXE 、 。Srcまたは。コマンド .

彼のファイルが疑わしい場合にメッセージを表示したい。私はポルトガル人なので、translate の 1 つのファイルを使用します。

メソッドは次のとおりです。

def suspicious_attachment
  if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
    errors.add(:attachment_file_name, I18n.t('errors.messages.suspicious_attachment', :value => attachment.path[-4..-1]))
    errors.add_to_base(I18n.t('errors.messages.suspicious_attachment', :value => attachment.path[-4..-1]))
    errors.add(:attachment_file_name)
  end
end

どちらが返されます:

添付ファイル attachment file name はアップロードできません。添付ファイル付きの添付ファイルのファイル名が有効ではありません 添付ファイルのベースはアップロードできません。と

「Attachments attachment file name」と「Attachments base」という言葉を表示したくありません。

なぜこれらの言葉が出てくるのかわかりません。

私の英語でごめんなさい。

ありがとう

4

1 に答える 1

4

これらの余分な文字列が表示されるのは、ベースではなく属性にエラー メッセージを追加したためです。

errors.add(:base, "some custom error message")

次のようなメッセージが表示されます。

「カスタム エラー メッセージ」

これに対して

errors.add(:attribute, "other message")

次のようなメッセージが表示されます。

「属性」その他のメッセージ」


あなたの場合、 :base を使用してエラーを追加します。

def suspitious_attachment
  if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
    errors.add(:base, I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
  end
end

または、メッセージで属性を翻訳したい場合:

activerecords:
  attributes:
    your_model_name:
      attachment_file_name: "File"

これを使用して、対応するメッセージを追加します。

def suspitious_attachment
  if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
    errors.add(:attachment_file_name, I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
  end
end

次のようなエラーが表示されます。

「ファイル」はアップロードできません

于 2013-10-07T15:05:52.190 に答える