我想用 text_fields 创建表单
- 标题
- 内容
- 标签
我有 Post (TITLE, CONTENT) 和 Tag (TAGS) 模型。TAGS 是单个文本字段。我需要做什么才能将 TAGS 保存到 Tag 模型。假设我在 TAGS 字段中写了“香蕉,果汁,新标签”,如何将其解析为数组,然后保存在标签模型中。
谢谢!
我想用 text_fields 创建表单
我有 Post (TITLE, CONTENT) 和 Tag (TAGS) 模型。TAGS 是单个文本字段。我需要做什么才能将 TAGS 保存到 Tag 模型。假设我在 TAGS 字段中写了“香蕉,果汁,新标签”,如何将其解析为数组,然后保存在标签模型中。
谢谢!
你看过http://github.com/jviney/acts_as_taggable_on_steroids/这应该会让你的生活更轻松。
在您的模型中使用 setter 方法来执行此操作。
您的视图将如下所示:
<% 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 是一个可怕的名字,但非常有效的选择。
Ryan Bates 有一个关于通过虚拟属性实现标签的截屏视频。