0

我有一个帖子模型...我正在尝试在网页的索引页面上显示此模型。

<% @posts.each do |post| %>
<%= @posts[1].title %> 
<%end%>

上面代码的问题是它显示标题 3 次,因为我有 3 个帖子。我如何编辑此代码以使其仅显示一次。

4

2 回答 2

0

你打算这样做:

<% @posts.each do |post| %>
  <%= post.title %> 
<%end%>

枚举器一次一个地将each其变量传递到具有do |variable|语法的块中。post中的每个项目也是如此@posts,一个接一个。

这是 Ruby 和 Rails 的一个非常基本的概念:如果不进一步了解这一点,您可能不会走得太远。我建议你去阅读 Programming Ruby——一个非常优秀的教程和对 Ruby 编程语言的参考——以了解块和枚举器是如何工作的。

于 2012-06-29T23:20:23.257 回答
0

如果您使用“每个”,它会显示所有帖子,因为在您的控制器中您有@posts = Posts.all。这会将到目前为止写入的所有帖子都写入 @posts 实例变量,并且每个枚举器都会打印所有帖子

如果您只想显示标题并且只显示第一篇文章,那么您可以在视图中这样写

<%= @posts.first.title %>
于 2012-06-30T00:31:43.867 回答