1

以下のコードを考えると:

var photos = [
<% current_app_user.photos.each do |photo| %>
{ url: "<%= photo.thumbnail_uri(400, 189) %>", title: "<%= truncate(photo.name, 65) %>", path :"<%= photo_path(photo) %>" },
<% end %>
];

一度に 10 枚の写真のみをプルするように変更するにはどうすればよいですか?

最初に 10 を生成し、ボタンをクリックしてさらに 10 を追加します。

4

2 に答える 2

1

ビューではなくコントローラーでこれを行う必要がありますが、コントローラー内では次のようにする必要があります。

@photos = current_app_user.photos.all(:limit => 10).map do |p| 
  { :url => p.thumbnail_uri(400, 189),
    :title => p.name,
    :path => photo_path(p) }
end

そしてあなたの見解では:

var photos = <%= @photos.to_json %>;

厳密に必要なもの以外は、ビューにコードはありません:)

于 2012-06-12T20:19:16.987 に答える
0

10 個の結果のみが必要な場合は、単純に limit メソッドを使用できます。

current_app_user.photos.limit(10).each { |photo| # etc... }

すべての写真を取得する必要があるが、それらを 10 個のブロックにチャンクする必要があり、jQuery を使用している場合は、私が作成したこのコードeach_sliceでコア jQuery オブジェクトに関数を追加できます。こんな場面で重宝するかもしれません。

于 2012-06-12T20:16:26.677 に答える