Rails вложенные формы - PullRequest
       10

Rails вложенные формы

0 голосов
/ 14 января 2010

Я хотел бы создать форму с text_fields

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

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

Thx!

Ответы [ 3 ]

1 голос
/ 14 января 2010

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

Ваш взгляд будет выглядеть так:

<% 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

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

1 голос
/ 14 января 2010

Райан Бейтс имеет скринкаст о реализации тегов через виртуальный атрибут.

1 голос
/ 14 января 2010

Вы видели http://github.com/jviney/acts_as_taggable_on_steroids/ Это должно значительно облегчить вам жизнь.

...