ActiveRecord::RecordNotFound 在 StaticPages Controller#home
ActiveRecord::RecordNotFound in StaticPagesController#home
每当我尝试访问该应用程序时都会收到此错误。该错误与应用程序控制器有关。这是错误。
找不到所有 Private::Conversations 'id': (17, 38)(找到 0 个结果,但正在寻找 2 个)。
错误在bash中有更多解释如下
ActiveRecord::RecordNotFound(无法找到 'id' 的所有 Private::Conversations:(17, 38)(找到 0 个结果,但正在寻找 2 个。):
app/controllers/application_controller.rb:28:在“opened_conversations_windows”中
我曾尝试更改查找方法,但事情似乎不适用于 find_by 等方法。
def opened_conversations_windows
if logged_in?
# opened conversations
session[:private_conversations] ||= []
@private_conversations_windows = Private::Conversation.includes(:recipient, :messages)
.find(session[:private_conversations])
else
@private_conversations_windows = []
end
end
我希望当没有找到对话时,应用程序应该在用户登录时呈现 nil 对话 windows。
find
旨在在找不到给定 ID 的记录时引发错误。
如果您不想引发错误,则可以在要查找单个记录时使用 find_by
,或者在该记录不存在时使用 return nil
。或者您可以使用 where
构建一个查询,如果有任何匹配记录,该查询总是 return 一个空数组上的匹配记录数组。
您可以将您的方法重构为:
def opened_conversations_windows
if logged_in? && session[:private_conversations]
@private_conversations_windows = Private::Conversation
.includes(:recipient, :messages)
.where(id: session[:private_conversations])
else
@private_conversations_windows = []
end
end
每当我尝试访问该应用程序时都会收到此错误。该错误与应用程序控制器有关。这是错误。 找不到所有 Private::Conversations 'id': (17, 38)(找到 0 个结果,但正在寻找 2 个)。
错误在bash中有更多解释如下 ActiveRecord::RecordNotFound(无法找到 'id' 的所有 Private::Conversations:(17, 38)(找到 0 个结果,但正在寻找 2 个。):
app/controllers/application_controller.rb:28:在“opened_conversations_windows”中 我曾尝试更改查找方法,但事情似乎不适用于 find_by 等方法。
def opened_conversations_windows
if logged_in?
# opened conversations
session[:private_conversations] ||= []
@private_conversations_windows = Private::Conversation.includes(:recipient, :messages)
.find(session[:private_conversations])
else
@private_conversations_windows = []
end
end
我希望当没有找到对话时,应用程序应该在用户登录时呈现 nil 对话 windows。
find
旨在在找不到给定 ID 的记录时引发错误。
如果您不想引发错误,则可以在要查找单个记录时使用 find_by
,或者在该记录不存在时使用 return nil
。或者您可以使用 where
构建一个查询,如果有任何匹配记录,该查询总是 return 一个空数组上的匹配记录数组。
您可以将您的方法重构为:
def opened_conversations_windows
if logged_in? && session[:private_conversations]
@private_conversations_windows = Private::Conversation
.includes(:recipient, :messages)
.where(id: session[:private_conversations])
else
@private_conversations_windows = []
end
end