2011-09-03 41 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