使用标签创建新博客

时间:2011-09-28 21:57:37

标签: ruby-on-rails model ruby-on-rails-3.1 model-associations

我正在尝试使用标记设置博客,并且在尝试保存时遇到了问题。

我有3个模特

博客模型

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

blog_tag模型

belongs_to :blog
belongs_to :tag

标记模型

[nothing]

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

我一直在尝试一些不同的东西,最终得到了这个

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

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

似乎工作除了它抱怨父母没有被创建,并在第二次尝试它给我一个错误尝试拆分字符串“string1”,我猜是由于没有任何逗号。

我真的希望你们中的一个人可以帮助我,或者至少让我指向正确的方向: - )

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

您可能还需要处理诸如“ruby,rails”之类的情况,即确保标签不为空。