如何从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元素,以确保您能够正常工作