我已經使用這個站點大量的時間來找到我的答案,但我很抱歉現在需要一些幫助。在我的主要內容頁面上,我正在研究使用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