2015-02-28 12 views
11

Ho impostato correttamente act_as_taggable_ sul mio modello. Come previsto, quando divido i tag con virgole, divide i tag correttamente.Rails - acts_as_taggable_on Rimuove le virgole durante il montaggio

Tuttavia, quando si modifica il post, il campo viene popolato automaticamente con i tag per la modifica, tranne che le virgole non sono più disponibili.

Ciò significa che se premo Salva senza reinserirli, i tag ora diventano tutti un tag.

Ho provato a utilizzare ActsAsTaggableOn.delimiter = ' ' che funziona quando sono tag di una parola. Ma ora ho il problema che se ho un tag a due parole, quando modifico e salvo il post i due tag parola ora diventano tag di una parola.

Qualsiasi aiuto che qualcuno potrebbe avere su questo sarebbe molto apprezzato.

Grazie!

+2

Prova questo nel modulo di input: '<% = f.text_field: tag_list, valore: @ example_record.tag_list.join ("")%>' –

+0

Possibile duplicato di [Rails 4: text \ _field per atti \ _as \ _aggregabili \ _non separare i tag con una virgola] (https://stackoverflow.com/questions/27646714/rails-4-text-field-for-acts-as -taggable-on-not-separating-tags-with-a-comma) –

risposta

18

Questo comportamento è apparentemente by design in act_as_taggable_on.

Prova ad aggiungere al vostro to_s tag_list nel modulo di input:

<%= f.text_field :tag_list, value: @example_record.tag_list.to_s %> 

Non è l'ideale, ma questo dovrebbe consentire al campo per visualizzare la separati da virgola tag correttamente.

+1

Ah! Ha funzionato a meraviglia! Grazie! – abbott567

+0

Felice di essere di aiuto! – Zoran

+1

funziona anche per me, mi salvi la notte – Fusco

0

Se si utilizza solo una parola nei tag, è possibile utilizzare uno spazio come delimitatore anziché virgole.

config/initializers/acts_as_taggable_on.rb 

ActsAsTaggableOn.delimiter = ' ' # use space as delimiter 

Penso che questo non sia l'ideale, ma ho risolto il problema.

2

Per uso simple_form questo:

<%= f.input :tag_list, input_html: {value: @example_record.tag_list.to_s} %>