0

rocket_tag我有一个使用gem有标签的发布模型

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 Tag调用touch()发布模型,但我不确定如何从 gem 扩展模型以向它添加这个额外的回调和方法.....除非有什么从上面可能有错。

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 来设置它们。

于 2013-04-24T20:17:44.847 回答