我的应用中有用户模型和列表模型。
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”中的第3行
raise @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
时,我会在两个地方获得一个空数组。为什么2个代码之间的行为不同?
答案 0 :(得分:1)
因为您在第一个lists
之后在控制器中构建了raise
:
@new_list = current_user.lists.build
它是相同的代码,但数据是不同的,因为你做了的事情。