【发布时间】:2009-07-08 18:45:06
【问题描述】:
我有一个Entry 模型,它是has_many :tags。我希望能够在文本输入中列出我的标签(即“tag-1、tag-2”等),但是我遇到了问题。
如果我只是使用
form_for(:entry, form_options) do |f|
f.text_field :tags
end
我的文本框已创建,但填充了 #<Tag:0xb79fb584>#<Tag:0xb79faddc> 之类的内容,这显然不是我要查找的内容。
我知道我可以在 Tag 中添加 to_s 方法:
class Tag < ActiveRecord::Base
def to_s
name # the name of the tag
end
end
但这只会让我留下tag-1tag-2 这样的东西,因为@entry.tags.to_s 仍然只是指Array#to_s。
现在,我正在使用
f.text_field :tags, :value => @entry.tags.map(&:name).join(", ")
相反,它会显示正确的字符串,但感觉不像是做事的“rails 方式”。有没有办法可以将自定义 to_s 方法专门添加到我的 tags 关联?
【问题讨论】:
标签: ruby-on-rails activerecord associations