2011-09-03 44 views
2

我列出的車型在我的應用程序使管理員可以創建自定義角色節省:停止陣列從短線

 <% ActiveRecord::Base.send(:subclasses).each do |model| %> 
    <tr> 
     <td width=10> 
      <label><%= check_box_tag "role[read_models][]", model.name, @role.read_models.include?(model.name) %></label><br /> 
     </td> 
     <td width=10> 
      <label><%= check_box_tag "role[write_models][]", model.name, @role.write_models.include?(model.name) %></label><br /> 
     </td> 
     <td><%= model.name %></td> 
    </tr> 
    <% end -%> 

它的方式的偉大工程。在日誌它正確地保存數組,像這樣:

"read_models"=>["Slug", "Account", "Category", "Document", "Group", "Location", "Role", "Status", "Task", "Ticket"] 

但輸出結果時:

<%= @role.read_models.each do |model| %> 
    <%= model %><br /> 
<% end -%> 

我得到這個:

--- 
- Slug 
- Account 
- Category 
- Document 
- Group 
- Location 
- Role 
- Status 
- Task 
- Ticket 

(包括前三個破折號)

我試着做to_a.join(「」),但它仍然有破折號在每一個的面前。

如何,我需要改變這個過程的任何想法?謝謝!

+0

它在哪裏保存這樣的嗎?你想做什麼?這是數組的YAML表示形式,Rails必須像這樣保存它。 –

+0

我看到它在日誌中,它看起來像一個正常的數組,但放在視圖時,它有破折號。 – Marc

+0

是否有像to_yaml這樣的東西可以用來使它變成相反的......實際上,在這一點上它並不重要......它看起來並不漂亮。 – Marc

回答

0

我猜你有角色和這個類是用來存儲這些值的一個,如果這是你的情況,這裏是你能做什麼:

class Role < ActiveRecord::Base 
    serialize :read_models, Array 
end 

這將使ActiveRecord的店這些值在read_models列中作爲YAML表示(您已經擁有這個表示),但是您將使數組返回而不是包含YAML表示的字符串。

+0

感謝這正是我需要的! – Marc