给定以下代码:
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,依此类推。
你应该在控制器中执行此操作,而不是在您的视图中,但在控制器中,您应该这样做:
@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 %>;
您的视图中没有代码,除了绝对必要的代码:)
如果你只想要 10 个结果,你可以简单地使用 limit 方法:
current_app_user.photos.limit(10).each { |photo| # etc... }
如果您需要获取所有照片,但将它们分成 10 个块,并且您正在使用 jQuery,则可以使用我创建的这段代码,该代码将each_slice
函数添加到核心 jQuery 对象。在这种情况下,它可能很有用。