仅以增量获取 Rails 循环的信息



给定以下代码:

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 对象。在这种情况下,它可能很有用。

最新更新