首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用控件一起渲染2个模型

使用控件一起渲染2个模型
EN

Stack Overflow用户
提问于 2014-02-02 02:59:32
回答 1查看 19关注 0票数 0

我有两个模型:一个文本模型和一个图像模型。

代码语言:javascript
复制
text = object from text model
img  = object from image model

我想在我的主页上渲染这两个模型的对象,如下所示:

代码语言:javascript
复制
text
text
img
text
text
img
etc...

当我在我的控制器中这样做的时候:

代码语言:javascript
复制
texts = Text.where("published = ?", true, :order => "created_at DESC")
images = Image.offset(rand(Image.count)).first
@posts = texts + images

我从这两个地方都得到了对象,但图像并不在我想要的地方。有没有一种方法可以控制图像模型中的对象出现在哪里?如下所示:

代码语言:javascript
复制
@posts = texts + images.after(3)

代码语言:javascript
复制
@posts = texts + images.every(3)

谢谢。我尽量简明扼要。如果有任何其他信息我可以提供,我很乐意。

EN

回答 1

Stack Overflow用户

发布于 2014-02-02 03:57:24

如果这些图像被重复呢。您可以遍历数据并创建散列,如下所示

代码语言:javascript
复制
{1=> [imgobj,imgobj,txtobj], 2=> imgobj,imgobj,txtobj]}, 

使用此哈希在视图中显示数据。

控制器操作:

代码语言:javascript
复制
@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

在视图中:

代码语言:javascript
复制
@hsh.each do |k,v|
  v.each do |u|
    u
  end
end  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21502184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档