我已经使用这个站点大量的时间来找到我的答案,但我很抱歉现在需要一些帮助。在我的主要内容页面上,我正在研究使用CSS和div ID创建表格的问题。Ruby on Rails使用动态内容和局部视图渲染表格
概述表被损害的2行和6列,然后蔓延到12个箱每箱200像素X 200像素哪个。现在每个框的内容都包含一个新的项目(@books),它是由一个单独的控制器生成的(使用内置的生成scaffold命令)。我还使用分页来限制页面上的项目(12),以便旧的项目能够回滚。
问题
我能够用我的控制器和视图
控制器
def content
@books= Book.paginate(:page => params[:page], :per_page => 12)
respond_to do |format|
format.html # content.html.erb
end
查看{content.html以下代码来填充每个新内容12盒。 erb}
<% @books.each do |book| %>
<div id="column1">
<tr>
<td><%= book.name %></td>
<td><%= book.title %></td>
<td><%= book.content %></td>
<td><%= link_to 'Show', book %></td>
</tr>
</div>
<% end %>
<br />
<div id="paginate">
<%= will_paginate(@books,
) %)
</div>
</div>
当我生成视图时会发生什么是完美呈现,但我所有的书都使用相同的“列1”
<div id="column1">
<tr>
<td>Title</td>
<td>Name</td>
<td>Content</td>
<td><a href="/books/4d376fc63060da4abc000002">Show</a></td>
</tr>
</div>
<div id="column1">
<tr>
<td>Title </td>
<td>Name</td>
<td>Content</td>
<td><a href="/books/4d3c96383060da31c9000001">Show</a></td>
</tr>
</div>
我想对于每本书有其自己的列{2,3,4,... 12}这样我就可以瞄准每个人如果我需要使用jQuery。另一个问题是,我想使用渲染partial来处理所有内容,但是当我使用渲染partial时,它将所有项放置在1列{rel.Book.all}中,因此它只是重复所有包含的信息。我有一种感觉,我假设使用另一种方法或编辑当前的方法来完成这一点,但我不确定发生了什么。谢谢!
greenz
更新
嘿麦克我真的很感激你在想什么事情解释给一个牛逼的努力。我基本上回到第一步,应用每一段代码,看看它在哪里发疯。你正在做一个很好的工作来解释这个问题,但我无法理解渲染代码时发生了什么,因为用于渲染和布局的ruby文档非常基本,并且没有任何示例,我可以看到div_for标记如何影响渲染过程我是一个视觉的人)。我想告诉你的新代码,但注释不允许,所以我开了一个答案:(
第一个修改是去掉
<% @books.each do |book| %>
与
<table>
render @books
</table>
所以更换现在我的代码看起来像这样{} content.html.erb
<div id="maincontent">
<table>
render @books
</table>
<div id ="column1">
<tr>
<td><%= book.name %></td>
<td><%= book.title %></td>
<td><%= book.content %></td>
<td><%= link_to 'Show', book %></td>
</tr>
</div>
<% end %>
<br />
<div id="paginate">
<%= will_paginate(@books,
) %>
</div>
</div>
当这个应用我收到意想不到的è nd错误,当渲染视图指向我的代码的最后一行(当添加结束标记到最后它只是抛出另一个错误)所以我然后改变渲染页面从_bookcontent.html.erb到_book.erb并插入部分介于column1 div之间,如图所示。
<div id ="column1">
<%= render :partial => "book" %>
</div>
<%结束%>
我明白这是什么标记做,现在告诉我的部分,对于每一个“书”呈现来自数据库的最新著作ID。所以现在render @books语句跟踪我插入的每个呈现页面的书籍ID。 (我可能会误解,但这是我如何看待它)。所以现在到这个页面渲染的臭名昭着的 _book.erb是我的代码。
<% div_for(book) do %>
<tr>
<td><%= book.name %></td>
<td><%= book.title %></td>
<td><%= book.content %></td>
<td><%= link_to 'Show', book %></td>
</tr>
<% end %>
从我的<%div_for(书)上阅读做%>披着每本书的唯一DIV ID,例如
<div id="book_123"> Book.name/Book.Title </div>
这个div现载我COLUMN1 DIV ID内从之前有我的专栏/箱子的所有样式。从缺少div_for标签的信息,我仍然遇到了代码中的错误和意外结果。 (试图用ruby -w调试_book.erb不起作用,所以我不知道如何使用结束标签)。这些是我想要纠正我的理智。
我应该删除从我的内容页面的
<div id="column1">
和我的内容网页上的其他应用新的DIV ID /类?在我的分页之前,我在哪里插入<%end%>在partial和content.html.erb中标记了一个?看起来好像当我有两个渲染器抱怨在每个页面结尾的意外结束。
当用你的代码代替地雷时,我收到了上述意外的结果,但这不是由于你在我的代码中肯定缺少一个组件。
我可能会从布局上感知错误的方式接近这个错误的方式,但我的主要目标是有2行6个框/列,每个框包含一本不同的书。然后使用分页回滚到早期的书籍,并应用相同的布局,现在它确实很好,但是我为每本书使用相同的列ID,并且需要单独定位所有框。
我固定的代码。我在div_for语句结尾忘记了“do”。请注意,我在视图中有表格标签,div和tr标签将在部分中创建。 – mikewilliamson 2011-01-26 13:06:00