2010-01-14 4 views
0

Я хотел бы создать форму с text_fieldsRails вложенные формы

  • TITLE
  • СОДЕРЖАНИЕ
  • TAGS

У меня есть модель Post (TITLE, CONTENT) и Tag (TAGS). TAGS - это одно текстовое поле. Что мне нужно сделать, чтобы сохранить TAGS в теге. Скажем, я пишу 'банан, сок, новый тег' в поле TAGS, как это можно разобрать в массив, а затем сохранить в модели Tag.

Thx!

ответ

1

Используйте способ настройки в вашей модели, чтобы сделать это.

Ваше мнение будет выглядеть следующим образом:

<% form_for @post :url => { :action => "update" } do |post_form| %> 
    Title: <%= post_form.text_field :title %> 
    Content: <%= post_form.text_field :content %> 
    Tags: <%= post_form.text_field :tag_field %> 
<% end %> 

И тогда в вашей модели, вы бы модель, такая как это:

def tag_field=(field_data) 
    field_data.split.each { |tag| tags.build(:name => tag) } 
end 

Изменить: Как уже упоминалось, есть плагины, которые сделайте это для вас, act_as_taggable_on_steroids - это ужасно названный, но очень эффективный вариант.

1

Ryan Bates имеет screencast по реализации тегов через виртуальный атрибут.