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 回答