我在嘗試對從數據庫中接收到的一些項目進行排序。目前,我有一系列從我的Tool
模型返回的對象。現在,我檢索了一些工具從我的數據庫,通過使用下面的代碼(在我toolkit_controller):對對象進行排序Rails
def index
@tools = Tool.order('name ASC').all
end
這似乎是工作的罰款,並如預期。當我這樣做時,我會得到以下結果集(爲了清晰起見,省略了一些額外的結果)。
[#<Tool id: 1, name: "Hammer", description: "A basic hammer",
created_at: "2013-07-07 16:46:13",
updated_at: "2013-07-07 16:46:15">,
#<Tool id: 2, name: "Mallet", description: "A fancy
mallet", created_at: "2013-07-07 16:46:13", updated_at: "2013-07-07 16:46:15">,
#<Tool id: 3, name: "Screwdriver", description: "A screwdriver",
created_at: "2013-07-07 16:46:13", updated_at:
"2013-07-07 16:46:15">,
#<Tool id: 4, name: "Torch", description: "A cheap torch", created_at:
"2013-07-07 16:46:13", updated_at: "2013-07-07 16:46:15">, ....]
我正在掙扎現在的問題是如何以垂直方式(而非水平)我ERB頁面上顯示我的工具。爲了幫助描繪出我想要的排序順序的清晰圖片,請看看這篇文章:Ruby on Rails change array display order。
我的顯示代碼如下:
<%= @count = 0 %>
<div>
<% @tools.each do |t| %>
<% @count = @count+1 %>
<div class="individualTool">
<%= t.name %> <%= @count %>
</div>
<% if @count == 4 %>
<% @count = 0 %>
</div>
<div class="row-fluid">
<% end %>
<% end %>
正如你所看到的,上面的代碼工作正常,從顯示的名字的工具左到右(如錘,錘,螺絲刀,手電筒) ,但我的目標是按照如下所示的順序從上到下顯示它們:Ruby on Rails change array display order。
在我鏈接的文章中,有人建議使用.each_slice(3).to_a.transpose.flatten
(嘗試更正排序順序),但是當我在@tools
上嘗試了返回的內容時,我收到一條錯誤消息,指出element size differs
。
任何想法,我如何能夠完成這將是偉大的!
在此先感謝。
我不確定我完全理解這個問題,但是這不是一個比程序化的CSS更重要的問題嗎?如果它只是一個如何顯示的問題。 – Saifis
我想嘗試以編程方式修復我的'工具'的順序,如果可能的話。如果我能糾正它們存在的順序[#Tools ...],那麼我認爲我的問題會自行解決,並且代碼會起作用。 –
絕對是一個用CSS解決的顯示問題。 ***不要把顯示邏輯放到你的控制器中!!! *** – bdares