mysql - Rails activerecords 查询,行分割

标签 mysql ruby-on-rails activerecord

我有一些像这样的记录

"boss/supervisor/employee"
"boss"
"boss/supervisor"

我想将所有这些记录放入选择输入中而不重复...这是我已经完成的

在我的索引中我这样做了:

@jerarquy = Jerarquy.uniq.pluck(:name)

所以当我从 jerarquy 列中获取所有记录时:

<select>
    <% @jerarquy.each do |jer| %>
        <% jer.split('/').each do |j| %>
            <option><%= j %></option>
        <% end %>
    <% end %>
</select>

我确实从数据库中获取数据,但我认为我必须更改 Controller 中的某些内容才能按照我想要的顺序获取我想要的信息,例如,如果我选择一个我想要获取的老板/supervisor 和/employee 也是,但如果我选择一名员工,我只想得到一名员工

最佳答案

这就是如何使用 flatten 将字段转换为单个数组,然后使用 .uniq

ary = ["boss/supervisor/employee", "boss", "boss/supervisor"]
ary.map { |string| string.split('/') }.flatten.uniq
=> ["boss", "supervisor", "employee"]
<小时/>
@jerarquy = Jerarquy.uniq.pluck(:name).map { |string| string.split('/') }.flatten.uniq

<select>
    <% @jerarquy.each do |jer| %>        
      <option><%= j %></option>
    <% end %>
</select>

但是我想说,这段代码表明底层设计很糟糕。 您应该让数据库处理提取唯一记录。

关于mysql - Rails activerecords 查询,行分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30974714/

相关文章:

mysql - Rails 数据库查询 - 是否可以给列一个别名?

php - 限制每日访问

html - CSS 未应用于 .erb 中的表单元素

ruby-on-rails - 如何将变量传递给哈希字段上的 mongoid 查询

ruby-on-rails - rails : Serialize value as comma-separated and not as YAML

ruby-on-rails - Rails 中的多个数据库

mysql - 使用两个字段应用 'group by' 后,出现重复行。如何将相似的行分组?

mysql - 创建外键时遇到问题

ruby-on-rails - 如何使用Rails 3格式化RSpec 2输出

ruby-on-rails - 跳过相关对象的验证 - rails activerecord