Creating new blog with tags
Im trying to setup a blog with tagging, and i've run into a problem when trying to save.
I got 3 models
blog model
has_many :blog_tags
has_many :tags, :through => :blog_tags
blog_tag model
belongs_to :blog
belongs_to :tag
tag model
[nothing]
When i post my blog form, i got an input field with a comma seperated list of tags that i would like to create in the blog_tags tabel.
I've been trying out some different stuff and ended up with this
@blog_tags = params[:blog][:tags].split(",")
@blog_tags.each do |tag|
@tag = Tag.find_by_tag(tag)
@blog.tags.push(@tag)
end
Seemed to be working besides it complained that the parent wasn't created, and in the 2nd try it gave me an error for trying to split the string "string1" which i guess is caused by not having any commas.
I really hope one of you out there can help me out here, or atleast 开发者_Go百科point me in the right direction :-)
Thanks!
I'd go for a gem. Try https://github.com/mbleigh/acts-as-taggable-on for example.
I think you just need to handle the cases where params[:blog][:tags]
has no commas. In this case, the whole string is one tag, so just add it.
You might also need to deal with cases like "ruby, ,rails" i.e making sure the tags aren't empty.
精彩评论