无法获得随机帖子显示在rails博客上

时间:2014-05-03 21:41:44

标签: ruby-on-rails ruby-on-rails-4 blogs

我一直试图在主页上为我的rails博客显示一个随机博客文章。这是我在stackoverflow上的另一篇文章中使用的代码

def index
  @post = Post.offset(rand(Post.count)).first
end

对于视图我尝试了@ post.each do | post |的所有内容到<%= @ post%>。并且它仍然没有显示一个随机帖子。

1 个答案:

答案 0 :(得分:2)

@post = Post.offset(rand(Post.count)).first查询会从posts表格返回单个随机记录,因此您无法在其上调用each@post.each),因为它是不是一个集合。

要在视图中显示该随机帖子,请使用

<%= @post.try(:field_name) %>

field_name替换为您要显示的field表中的posts

例如:如果您希望在title视图中显示body表格中的postsindex字段,请使用:

<%= @post.try(:title) %>
<%= @post.try(:body) %>

使用try,以便@postnil,即如果posts表中没有记录,则不会在您的网页上收到任何错误。< / p>

<强>更新

使用

设置集合@posts中的每个帖子的属性

@posts = Post.all

您需要按如下方式迭代集合:

<%= @posts.each do |post| %>
  <%= post.try(:title) %>
  <%= post.try(:body) %>
<% end %>