0

我在 HABTM 关系中有两个模型,帖子和主题标签。

我的帖子控制器如下所示:

 def create
    @post = current_user.posts.new(params[:post])

    respond_to do |format|
      if @post.save
        format.html { redirect_to @post, :notice => 'Post was successfully created.' }
        format.json { render :json => @post, :status => :created, :location => @post }
      else
        format.html { render :action => "new" }
        format.json { render :json => @post.errors, :status => :unprocessable_entity }
      end
    end
  end

现在,当用户创建新帖子时,我想做以下事情:

  • 检查主题标签,以“#”开头的单词
  • 如果主题标签已经存在,请链接帖子和主题标签
  • 如果主题标签不存在,则将其添加到主题标签中,并将帖子和新添加的主题标签链接起来

我想在我做完posts.new之后我必须这样做,但我不确定如何继续。我只是编辑@post 对象吗?如果是这样,@post.save 应该采用什么格式来获取链接?

任何建议将不胜感激!

4

1 回答 1

0

好的,如果您的关系设置正确,您可以在帖子文本上运行正则表达式以获取所有主题标签,然后您可以为主题标签分配类似的@post.hashtags = tags内容(标签是您从文本中提取的主题标签),然后保存模型.

另一种(我想说的不太合适的方法)是做同样的事情,但检查标签的存在并创建它们并通过模型保存它们,但良好的做法要求你通过与Post模型的关系来做到这一点。

于 2012-08-29T22:04:15.310 回答