3

我创建了一个博客。每当我添加一个帖子时,在帖子索引页面 ( ) 的底部总是会显示来自数据库的记录列表home.html.erb,如下所示:

[#<Post id: 1, title: "hahaha", content: "Because the gravatar_for method is undefined, the u...", public: true, created_at: "2013-03-18 04:00:17", updated_at: "2013-03-18 04:01:09">] 

我试图删除<%= will_paginate @posts %>,但它不起作用。

这是我的home.html.erb

<%= @posts.each do |post| %>
<article class="posts">
    <h2><%= link_to post.title, post_path(post) %></h1>
    <h3><%= post.public %></h3>
    <p><%= truncate markdown(post.content), length: 400, omission: " ......" %></p>
    <span class="continue"><%= link_to "... Continue Reading ...", post_path(post) %></span>
</article>
<% end %>
<%= will_paginate @posts %>

这是我的 Gemfile,以备不时之需:

source 'https://rubygems.org'

gem 'rails', '3.2.12'
gem 'pg'
gem 'redcarpet'
gem 'will_paginate'
gem 'redcarpet'
gem 'coderay'

group :development, :test do
  gem 'rspec'
  gem 'rspec-rails'
  gem 'faker' 
end

group :test do
  gem 'capybara'
  gem 'factory_girl_rails'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'bcrypt-ruby', '~> 3.0.0'

这是一个奇怪的情况。所以我想知道发生了什么?

谢谢!

4

2 回答 2

4

你需要改变这个:

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

对此:

<% @posts.each do |post| %>

告诉它将输出附加到 HTML,这<%=就是您看到数组的原因。

于 2013-03-18T04:27:38.903 回答
4

将您的模板文件从 -

<%= @posts.each do |post| %>
<article class="posts">
  <h2><%= link_to post.title, post_path(post) %></h1>
  <h3><%= post.public %></h3>
  <p><%= truncate markdown(post.content), length: 400, omission: " ......" %></p>
  <span class="continue"><%= link_to "... Continue Reading ...", post_path(post) %></span>  
  </article>
  <% end %>
<%= will_paginate @posts %>

到 -

<% @posts.each do |post| %>
  <article class="posts">
  <h2><%= link_to post.title, post_path(post) %></h1>
  <h3><%= post.public %></h3>
  <p><%= truncate markdown(post.content), length: 400, omission: " ......" %></p>
  <span class="continue"><%= link_to "... Continue Reading ...", post_path(post) %>  </span>
 </article>
<% end %>

它出现是因为您正在使用 <%= @posts.each do |post| %> 而不是 <% @posts.each 做 |post| %>。<%= %> 将输出返回值,但 <% %> 不会

于 2013-03-18T04:29:46.247 回答