0

HABTM 関係に、投稿とハッシュタグの 2 つのモデルがあります。

私の投稿コントローラーは次のようになります。

 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(タグはテキストから抽出したハッシュタグです)、モデルを保存できます。 .

もう 1 つの方法 (あまり適切ではありません) は、同じことを行うことですが、ハッシュタグの存在を確認し、ハッシュタグを作成してモデルを介して保存しますが、Postモデルとの関係を介してこれを行うことをお勧めします。

于 2012-08-29T22:04:15.310 に答える