鉴于以下代码:
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个,依此类推。
答案 0 :(得分: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 %>;
除了严格必要的内容之外,您的视图中没有代码:)
答案 1 :(得分:0)
如果您只想要10个结果,则只需使用限制方法:
current_app_user.photos.limit(10).each { |photo| # etc... }
如果您需要获取所有照片但是将它们分成块10并且您正在使用jQuery,那么我创建的code可以向核心jQuery对象添加each_slice
函数。在这种情况下它可能很有用。