这是我的posts_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all.order("created_at DESC")
end
def new
end
def create
@post = Post.new(post_params)
@post.save
redirect_to @post
end
def show
@post = Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title, :body)
end
end
这是我的index.html.erb
<%= @posts.each do |post| %>
<div class="post_wrapper">
<h2 class="title"><%= link_to post.title, post %></h2>
<p class="date"><%= post.created_at.strftime("%B, %d, %Y") %></p>
</div>
<% end %>
以下是页面的外观: screenshot
为什么那条[]行出现了? 如何隐藏/删除它?
答案 0 :(得分:0)
将=
更改为-
:
<%- @posts.each do |post| %>
您在ERB中看到<%=
表示将其打印到视图中,而<%-
表示执行此ruby代码。
由于Ruby中的所有内容都是表达式,因此@posts.each do |post|; end %>
块会返回一个@posts
数组,然后将其呈现到您的视图中。
答案 1 :(得分:0)
删除=
,例如: -
<%- @posts.each do |post| %>
答案 2 :(得分:0)
此行是问题,您不需要=
<% @posts.each do |post| %>
答案 3 :(得分:0)
将“=”更改为“ - ”或只删除“=”
<% @posts.each do |post| %>
或
<%- @posts.each do |post| %>
<% %>
- 执行ruby代码
<%- %>
- 避免表达后的换行符
<%= %>
- 打印成erb
<%# %>
- 注释掉代码