2

Rails 3 に Article という名前のモデルがあり、rake environment tire:import CLASS='Article' FORCE=trueインデックスを作成するために使用します。deletedしかし、フィールドが false に等しい記事だけをインデックスに登録したいのです。どうすれば実装できますか?

4

3 に答える 3

2

スコープ メソッドを使用できます。

rake environment tire:import CLASS='Article.scoped(:conditions => {:deleted => false})' FORCE=true

参照: karmi @ https://github.com/karmi/tire/issues/458による回答

于 2013-01-23T13:39:54.450 に答える
0

これは、最新のタイヤの宝石ではうまくいきませんでした。タイヤ v0.5.4 では機能しましたが、v0.6.2 では機能しませんでした。それで、レーキタスクを作成するために、私はこれをしました...

desc 'Index articles'
task :index => :environment do
  Article.where(:deleted => false).find_in_batches do |batch|
    Tire.index(Article.index_name).import batch
  end
end

readmeでは find_in_batches の使用が推奨されていました。

于 2014-04-02T17:18:43.513 に答える