1

我试图用标记设置博客,并且在尝试保存时遇到问题。使用标签创建新博客

我有3种型号

博客模式

has_many :blog_tags 
has_many :tags, :through => :blog_tags 

blog_tag模式

belongs_to :blog 
belongs_to :tag 

标签模式

[nothing] 

当我发布我的博客表单时,我得到了一个用逗号分隔的我想在blog_tags tabel中创建的标签列表的输入字段。

我一直在尝试一些不同的东西,并结束了与此

@blog_tags = params[:blog][:tags].split(",") 

@blog_tags.each do |tag| 
    @tag = Tag.find_by_tag(tag) 
    @blog.tags.push(@tag) 
end 

似乎工作除了它抱怨父母不创建,并在第二尝试它给了我一个错误试图分割字符串“string1”,我猜是没有任何逗号造成的。

我真的希望你们中的一个在那里可以帮助我在这里,或至少点我正确的方向:-)

谢谢!

回答

1

我会去找一个宝石。例如,尝试https://github.com/mbleigh/acts-as-taggable-on

+0

感谢您的链接。我最好自己做这件事,因为我主要是做网页作为学习铁路项目,但经过一段时间的思考后,我决定与宝石一起走:-) –

+0

我明白你的观点,但重新发明车轮并不是真正的除非你是一名真正的初学者学习处理代码,阅读代码或使用别人写的APIS,无论如何都是学习的好方法。 – lucapette

0

我认为你只需要处理params[:blog][:tags]没有逗号的情况。在这种情况下,整个字符串是一个标签,所以只需添加它。

您可能还需要处理像“ruby,rails”这样的情况,即确保标签不是空的。