Lidar com matrizes MongoDB em formulários Rails

Um exemplo de postagem:

{
title
: 'Editing MongoDB Arrays in Rails'
tags
: ['ruby', 'rails', 'mongodb']
}

Crie um modelo com dois novos métodos como este:

class Post
include
Mongoid::Document

field
:title, type: String
field
:tags, type: Array, default: []

def tags_list=(arg)
self.tags = arg.split(',').map { |v| v.strip }
end

def tags_list
self.tags.join(', ')
end
end

Em seu formulário de visualização, use o seguinte em vez do campo de tags

<%= f.text_field :tags_list %>

Quaisquer valores separados por vírgulas no campo serão salvos como itens individuais em uma matriz.

Exemplo:

post = Post.new
post
.tags_list = 'tag1, tag2, tag3'
=> "tag1, tag2, tag3"

post
.tags
=> ["Tag1", "Tag2", "Tag3"]

Postado originalmente em ( http://blog.codiez.co.za/2013/07/editing-mongodb-arrays-in-rails/ )