Ruby on rails RubyonRails:添加一个用户登录到我现有的应用程序会杀死我的索引

Ruby on rails RubyonRails:添加一个用户登录到我现有的应用程序会杀死我的索引,ruby-on-rails,authlogic,thinking-sphinx,Ruby On Rails,Authlogic,Thinking Sphinx,我有一个我一直在开发的应用程序,到目前为止,它只是一个单用户环境。我终于到了需要添加多用户功能的地步,所以我遵循railscast获得了一个简单的登录 然后,我添加了一个具有多个:items和接受:items的嵌套属性,并且属于:user到正确的模型。然后我删除了数据库和安装程序,然后迁移了它。我还向所有嵌套模型添加了一个user\u id列 之后,当我点击“创建新项目”链接时,我进入新页面并创建一个新项目。当我返回到item_索引页面时,它不再显示。我可以转到localhost/item/1查

我有一个我一直在开发的应用程序,到目前为止,它只是一个单用户环境。我终于到了需要添加多用户功能的地步,所以我遵循railscast获得了一个简单的登录

然后,我添加了一个
具有多个:items
接受:items
的嵌套属性,并且
属于:user
到正确的模型。然后我删除了数据库和安装程序,然后迁移了它。我还向所有嵌套模型添加了一个
user\u id

之后,当我点击“创建新项目”链接时,我进入新页面并创建一个新项目。当我返回到item_索引页面时,它不再显示。我可以转到localhost/item/1查看该记录,这样我就知道它正在创建,但当我尝试在我的item_index.html.erb中查看它时,它不再显示

这是我添加用户之前的基本循环。(正在渲染到表中)

我有一个奇怪的
if nil?
的东西,因为我在使用thinking sphinx,如果索引为空,它有时会失败

编辑2:

如果我将索引更改为

def index
   @items = Item.all
end
一切都显示出来了。这就意味着这与斯芬克斯的想法和我的渲染有关


edit3:在思考狮身人面像时尚时,我做了一些与之无关的事情,它神奇地再次发挥作用

认为Sphinx将返回一个空的结果集
[]
,当您尝试迭代此空集时,将不会显示任何项目

据我所知,Thinking Sphinx将永远不会返回搜索结果

或许可以试试这个:

if @items.empty?
  @items = Item.all
end

此外,我还尝试对@items中的item执行
;项目名称;结束Item.all
,它将显示我的项目。@Reti:我已经更新了我的答案,以反映您现在所做的编辑。它应该能清楚地回答您的问题。如果Item.search返回的数组中包含零个条目,则您的索引与数据库不同步。尝试重新索引并重新启动sphinx守护进程。
def index
   @items = Item.all
end
if @items.empty?
  @items = Item.all
end