我试图将对象融合到单个流中。

我创建了一个称为Newsfeed的新模型和控制器。我有它,以便新闻提要has_many:messages和has_many:images图像和消息属于:newsfeed。我现在正在设置控制器,我有:

def index
    @messages = Messages.all
    @images = Images.all
    @feed = ?
end


我如何融合它们,以便当它们各自需要单独格式化时,它们可以从两者中拉出并按时间顺序排列?

任何帮助将不胜感激,谢谢。

最佳答案

您可以执行以下操作:

控制器:

def index
    messages = Messages.all
    images = Images.all
    @feed = (messages + images).order_by(&:created_at)
end


查看index.html.erb:

<%= render @feed %>


查看_feed.html.erb:

<% if feed.is_a? Message %>
  <%= render "message", :locals => {:message => feed}%>
<% else %>
  <%= render "image", :locals => {:image => feed}%>
<% end %>


并添加2个局部变量_message.html.erb和_image.html.erb

关于ruby-on-rails - 如何在Rails中使用ruby创建Facebook风格的新闻提要?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2242173/

10-13 04:44