我有两个模型:一个文本模型和一个图像模型。
text = object from text model
img = object from image model我想在我的主页上渲染这两个模型的对象,如下所示:
text
text
img
text
text
img
etc...当我在我的控制器中这样做的时候:
texts = Text.where("published = ?", true, :order => "created_at DESC")
images = Image.offset(rand(Image.count)).first
@posts = texts + images我从这两个地方都得到了对象,但图像并不在我想要的地方。有没有一种方法可以控制图像模型中的对象出现在哪里?如下所示:
@posts = texts + images.after(3)或
@posts = texts + images.every(3)谢谢。我尽量简明扼要。如果有任何其他信息我可以提供,我很乐意。
发布于 2014-02-02 03:57:24
如果这些图像被重复呢。您可以遍历数据并创建散列,如下所示
{1=> [imgobj,imgobj,txtobj], 2=> imgobj,imgobj,txtobj]}, 使用此哈希在视图中显示数据。
控制器操作:
@hsh = {}
texts.each_slice(2).each do |text|
images = Image.offset(rand(Image.count)).first
count = 1
@hsh[count] = [text[0],text[1], images]
count+=1
end在视图中:
@hsh.each do |k,v|
v.each do |u|
u
end
end https://stackoverflow.com/questions/21502184
复制相似问题