我试图在Ruby上创建一个关于rails的博客,我想在我的视图中显示posts
表。简单就像我的好看,有些事情会失败。循环遍历整个表并将记录呈现到我的视图后,它还会将包含完整表的数组呈现给我的视图。
创建此视图的代码是:
<%= @posts.each do |post| %>
<div class="post_wrapper">
<h1 class="title">
<%= post.title %>
</h1>
<p class="date">
Submitted <%= time_ago_in_words(post.created_at) %> Ago
</p>
<p class="body">
<%= post.body %>
</p>
</div>
<p style="color:red; font-size:1.5em;">the array is added after the div</p>
<%end%>
<p style="color:red; font-size:1.5em;">but still inside the loop</p>
<br />
<%= link_to "New post", new_post_path %>
答案 0 :(得分:1)
<%= @posts.each do |post| %>
...
<%end%>
由于<%=
符号,您必须改为使用<%
,
<% @posts.each do |post| %>
...
<%end%>
因为each
返回调用它的数组,并且你使用<%=
符号来运行Ruby代码并显示它,这就是为什么你在最后有一个数组的原因你打电话给each
答案 1 :(得分:1)
您需要更改此行
<%= @posts.each do |post| %>
到
<% @posts.each do |post| %>
答案 2 :(得分:1)
第一行应该是<%
而不是<%=
。
使用<%=
渲染html中的内容。对于.each
,您不需要渲染您正在使用的对象,因此<%
可以正常工作。
简单语法错误:)
答案 3 :(得分:0)
尝试更改此代码:
<%= @posts.each do |post| %>
进入这个:
<% @posts.each do |post| %>
此<% @posts
符号表示您想要一起显示实例变量,但您只想评估它。