2012-09-26 40 views
-1

我有一個看起來像數組奇怪的數組輸出...如何將數組分佈到單詞中並能夠將它們打印出來?

["", "Fitness", "Stationary", "Looks", "Access", "Food", 
"---\n- Stationary\n- Access\n- ''\n"] ["", "Fitness", 
"Stationary", "Looks", "Access", "Food", "---\n- Stationary\n- Access\n- ''\n"] 

我使用下面的代碼要經過他們...

<h3>Categories</h3> 
<% for product in Product.select(:category)%> 
    <% a = [""].concat(Product.select(:category).map(&:category).uniq) %> 
<% end %> 
<% a.each do |c| %> 
    <p class="text-error"><%= link_to(c.delete("-"),) %></p> 
<% end %> 

我得到這樣的事情......

Fitness 
Stationary 
Looks 
Access 
Food 
Stationary Access '' 

完整的代碼,請訪問:
https://github.com/abhishekdagarit/sample-app.git

如何解決這個問題? 如果數據庫中有髒數據,我該如何清理它?

這裏有什麼問題?以及如何解決它?

回答

2

它看起來像你有YAML數組中:

jruby-1.7.0.preview2 :001 > require 'yaml' 
=> true 
jruby-1.7.0.preview2 :002 > a = ["", "Fitness", "Stationary", "Looks", "Access", "Food", "---\n- Stationary\n- Access\n- ''\n"] 
=> ["", "Fitness", "Stationary", "Looks", "Access", "Food", "---\n- Stationary\n- Access\n- ''\n"] 
jruby-1.7.0.preview2 :003 > YAML.load(a.last) 
=> ["Stationary", "Access", ""] 

這意味着你可能有垃圾在你的productscategory列。它如何到達那裏,不確定;從yml文件播種數據時可能發生了一些奇怪的事情?

避免這種情況的最佳方法是創建一個名爲categories的參考表,並在products表中引用此表,並使用category_id外鍵作爲參考。這樣,在創建產品時,可以顯示僅包含有效類別的下拉列表,並防止將無效類別添加到數據庫中。

+0

謝謝你的回答。我會先看看它是否有幫助。 –

相關問題