ダウンロードリンクが動作することを確認する必要があります。ファイルがかなり大きいので、ダウンロードディレクトリに古いファイルがないことを確認する必要があります。したがって、ダウンロード管理ページでは、すべてのデータベースfile_nameに同じ名前のファイルがダウンロードディレクトリにあることを検証します。このページでは、ディレクトリ内のすべてのファイルにデータベース内のfile_nameがあることを確認します。コントローラで "含む?"ステートメント
:@documents = Document.find(:all, :order => "section asc, sub_section asc, position asc, name asc")
@files = Dir.glob("public/downloads/*").sort
FIRST検証:
<% @documents.each do |d| -%>
<% if @files.include?("public/downloads/" + d.file_name)
clr = "Green"
else
clr = "Red"
end %>
... color coded print routine ...
<% end %>
SECOND検証::私の見解では、データベース内のすべての文書レコード用のファイルがあることを検証するために私の見解ではすべてのファイルに日付ベースの文書レコードがあることを確認します。
すべてのテストドキュメントリスト、印刷されたデータベースのfile_namesは、ダウンロードディレクトリから印刷されたファイル名と正確に一致します。ただし、2回目の検証のインクルードテストは機能しません。私は理由を理解することができませんでした。
ありがとうございました!
は完全に働いた:=]のおかげで。 – Jay
私は、これを行う正しい一般的な方法ではないと考えています。検出された要素が返されるため、文字列が空でないことがわかっているので、この場合に動作します。 代わりに.map().include()または.any()を使用する必要があります。 –
実際に検出すると、常にドキュメントインスタンスが返されるため、その可能性はありません。この場合、唯一の違いは何ですか? booleanを返し、detectはDocumentインスタンスまたはnilを返します。 – psyho