0

我的应用程序中有一个用户模型和一个列表模型。

pages_controller.rb

class PagesController < ApplicationController

 def home
  if user_signed_in?
   @lists = current_user.lists    
   # raise @lists.inspect 
   @new_list = current_user.lists.build
  end
 end

end 

页面/home.html.erb

<%= raise @lists.inspect %>

现在,我当前的用户没有与他关联的列表。当我取消注释“Pages#home”中的第三行时

提高@lists.inspect
我得到这样的输出:
[]

但是,当我注释掉该行时,会引发 home.html.erb 内部的异常,其输出如下所示:[#<List id: nil, name: nil, description: nil, user_id: 1, created_at: nil, updated_at: nil>]

为什么同一行的输出有差异@lists.inspect

编辑: 当我使用@lists = current_user.lists.all而不是@lists = current_user.lists then 我在两个地方都得到一个空数组。为什么两个代码之间的行为差​​异?

4

1 回答 1

1

因为您在第一个之后构建lists了控制器:raise

@new_list = current_user.lists.build

这是相同的代码,但数据不同,因为你对它了一些事情。

于 2013-06-29T18:20:23.387 回答