find_photos メソッドを呼び出し、クエリ文字列 (ファイル名) を渡すコントローラーがあります。
class BrandingPhoto < ActiveRecord::Base
def self.find_photos(query)
require "find"
found_photos = []
Find.find("u_photos/photo_browse/photos/") do |img_path|
# break off just the filename from full path
img = img_path.split('/').last
if query.blank? || query.empty?
# if query is blank, they submitted the form with browse all- return all photos
found_photos << img
else
# otherwise see if the file includes their query and return it
found_photos << img if img.include?(query)
end
end
found_photos.empty? ? "no results found" : found_photos
end
end
これは、写真でいっぱいのディレクトリを検索しているだけです。これを裏付けるテーブルはありません。
理想的には、find_photos によって返される結果の数を約 10 から 15 に制限し、必要に応じて次の 10 から 15 の結果をフェッチできるようにしたいと考えています。
これを行うコードには、10回ループしてそれらのファイルを取得することが含まれる可能性があると考えていました-最後のファイル名を変数またはパラメーターとして保存し、その変数をメソッドに送り返し、そこから検索を続行するように指示しますファイル名。
これは、ファイルが毎回同じ順序でループされること、およびこれを達成するためのより簡単な方法がないことを前提としています。
何か提案があれば、ぜひ聞いてみたい/これをどのように達成するかの例をいくつか見てみたい.
ありがとうございました。