我有2个模型:文本模型和图像模型。
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)
谢谢。我想简明扼要。如果我能提供任何其他信息,我将很乐意。
答案 0 :(得分:0)
如果图像重复怎么办?你可以循环遍历数据并创建像
这样的哈希{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