我有一个帖子模型......我试图在网页的索引页面上显示这个模型。
<% @posts.each do |post| %>
<%= @posts[1].title %>
<%end%>
上面代码的问题是它显示标题3次,因为我有3个帖子。如何编辑此代码使其仅显示一次。
答案 0 :(得分:0)
你打算这样做:
<% @posts.each do |post| %>
<%= post.title %>
<%end%>
each
枚举器将其变量一次一个地传递到具有do |variable|
语法的块中。因此post
是@posts
中的每个项目,一个接一个。
这是Ruby和Rails的一个非常基本的概念:如果不进一步理解这一点,你可能不会走得太远。我建议你去read Programming Ruby - 一个非常优秀的教程和Ruby编程语言的参考 - 来理解块和枚举器是如何工作的。
答案 1 :(得分:0)
如果您使用'each',它会显示所有帖子,因为在您的控制器中您有@posts = Posts.all。这将到目前为止写入@posts实例变量的所有帖子都打包出来,每个枚举器都会打印所有帖子
如果您只希望显示标题,而且只显示第一篇文章,那么您可以在视图中这样写出
<%= @posts.first.title %>