在rails中进行searchify的常规设置,如何从初始化文件中访问变量

时间:2012-04-18 07:20:39

标签: ruby-on-rails full-text-search initializer indextank searchify

如何从初始化文件中访问变量?

我的初始化文件夹

中有一个名为search.rb的文件
api_client = IndexTank::Client.new 'http://:xxyyzz@xv9v.api.searchify.com'
index = api_client.indexes 'idx'

然而,在我的控制器中,每当我试图索引新创建的课程时,rails都会给我一个错误

undefined method `document' for nil:NilClass

我的控制器是......

def create
    index.document(@lesson.id).add({:text => @lesson.content })
end

这也是索引我的文档的一种坏方法吗?什么时候他们被创造?感谢

2 个答案:

答案 0 :(得分:0)

看起来索引对象未初始化。

不,这不是索引文档的坏方法。 但是,我建议在特殊的索引模型中移动索引,该模型将处理特定索引的所有索引逻辑。 想想像数据库表那样的索引。

答案 1 :(得分:0)

您可能会发现通过kidpollo查看Tanker gem很有用 - https://github.com/kidpollo/tanker

这是rails的第三方IndexTank gem。你实际上不必使用它 - 如果你愿意,你可以继续使用indextank gem。但是查看Tanker gem的来源可能有助于找出在rails下编写代码的最佳方法。