0

rocket_tag宝石を使用したタグを持つ投稿モデルがあります

class Posting < ActiveRecord::Base
  attr_taggable :tags

  def tag_list
    self.tags.join(",")
  end

  def tag_list=(new_tags)
    attribute_will_change!(:tag_list)
    # split into array (comma and any spaces), ignore empties
    self.tags = new_tags.split(/,[\s]*/).reject(&:empty?)
  end

私の開発環境では問題FactoryGirlなく動作しているようですが、テスト用の投稿を生成するために使用すると、タグが検索インデックスに追加されないように見えるため、投稿後にタグが保存され、検索インデックスが更新されると仮定します保存されたタグが表示されないため、 を使用して検索することはできませんtire

これは、投稿モデルに対して呼び出すためにモデルにafter_saveコールバックを追加する必要があることを意味すると思いますが、宝石からモデルを拡張してこの追加のコールバックとメソッドを追加する方法がわかりません.....何かがなければ.上記から、障害がある可能性があります。rocket_tag Tagtouch()

FactoryGirl.define do
  factory :posting do
    sequence(:name)  { |m| "Posting #{m} name" }
    tag_list         "tag,another,third"
    user
  end
end
4

1 に答える 1

0

うまくいかない理由はわかりませんが、最終的にFactoryGirl.create投稿を作成し、投稿の編集ページにアクセスし、カピバラを使用fill_inしてタグを追加しclick_button "Submit"、検索インデックスを更新しました.

つまり、FactoryGirl を使用してタグを設定しようとするのではなく、通常の Web ページ ユーザーが行うのと同じ方法でタグを追加しました。

于 2013-04-24T20:17:44.847 に答える