如何从Rails应用程序中删除意外输出?

我正在学习Ruby on Rails并且正在编写一个简单的应用程序。

我有一个脚手架任务和workBlock。 该任务有许多工作块。 工作块属于任务。 在任务视图中,我试图显示任务的相关工作块。

结果是:

> Work Blocks: > > 2 > [# created_at: "2014-07-23 22:52:26", updated_at: "2014-07-23 22:52:26">] 

我不知道为什么“2”以下的所有东西都出现了,并且不知道如何摆脱它。

我也不知道这是否与涉及的日期时间类型有关。

这是代码:

这是在任务节目中。

 



Work Blocks:


  • @task.id)%>

  • 这是在workBlock模型中:

     # == Schema Information # # Table name: work_blocks # # id :integer not null, primary key # name :string(255) # start_time :datetime # end_time :datetime # hours_spent :integer # task_id :integer # created_at :datetime # updated_at :datetime # class WorkBlock < ActiveRecord::Base belongs_to :tasks end 

    用以下内容替换each块:

     <% @task.work_blocks.each do |work_block| %> 
  • <%=link_to work_block.name , work_block_path(work_block)%> <%end%>
  • 您还使用<%= @task.work_blocks.each...%>输出each块的评估。

    有关两个标签的详细信息,请查看rails 3中<%...%>和<%= ..%>之间差异的答案。

    输出标签

    我第一次启动Rails时遇到了这个问题 – 如果你使用带有<%= output tags %>.each方法,你基本上会得到你想要循环的输出数据列表。

    解决这个问题的方法是使用<% non output tags %> ,这样Ruby就不会输出循环本身,而是输出循环的内容:

     <% @task.work_blocks.each do |work_block| %> 
  • <%=link_to work_block.name , work_block_path(work_block)%>
  • <% end %>

    HTML

    另外,您的HTML标记格式不正确

    HTML格式的一般规则是您需要关闭您使用的标记。 当您使用

  • 元素时,通常必须使用关闭它,否则您的浏览器中的HTML呈现会出现问题。

    我强烈建议您阅读如何正确格式化页面上的HTML元素,以确保您能够正常工作