2013-08-21 43 views
0

我有選擇爲板選擇類別。simple_form集合和名稱

<%= simple_form_for @board do |f|%> 
    <%= f.input :name %> 
    <%= f.input :description %> 
    <% unless @board.root? %> 
    <%= f.input :parent_id, collection: formated_collection(@board), include_blank: false %> 
    <% end %> 
    <%= f.button :submit %> 
<% end %> 

Helper方法:

def formated_collection(board) 
    if board.new_record? 
     out = board.root.subtree 
    else 
     out = board.root.subtree - board.subtree 
    end 

    out.map {|b| b.name = "#{"&nbsp;"*b.depth}#{b.name}";b} 
    end 

在我選擇列表的形式,它應該是這樣的:

Root Name 
    Cat1 
    Cat2 
    Cat3 

代替它,我得到:

Root Name 
&nbsp;Cat1 
&nbsp;&nbsp;Cat2 
&nbsp;Cat3 

任何想法爲什麼它不會改變成非破碎ng空間?

回答

1

我解決這個問題,但是這個html_safe讓我感到困惑的所有時間:(

在助手:

out.map {|b| b.name = "#{"&nbsp;"*b.depth}#{b.name}";b} 

應該是:

out.map {|b| b.name = "#{"&nbsp;"*b.depth}#{b.name}".html_safe;b} 
+1

如果你不使用html_safe ,rails會假設字符串應該顯示爲文本,即不要將任何字符串解釋爲html。 – Slicedpan