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