我的创建新功能正在运行,不知怎的,它现在已经坏了。不知道为什么。
我收到此错误:
我的直线控制器就是这个
private
def set_space
@space = Space.find(params[:id])
@property = Property.find(params[:id])
# @contract = Contract.find(params[:id])
end
答案 0 :(得分:1)
您正试图通过控制器方法中的一个System.Object 10 Instances
System.String 102 Instances
System.Char [] 10 Instances ....
获取两条记录:
id
除非您有意这样做,否则您应该修改此代码。
其次,在执行@space = Space.find(params[:id])
@property = Property.find(params[:id])
之前,您应该始终检查id
是否收到有效的params[:id]
。你可以用:
.find(params[:id])
如果您使用@space = Space.find(params[:id]) if params[:id]
,如果找不到记录而不是您收到的错误消息,则会为您find_by_id
。
您获得的错误的原因很简单,您尝试从db访问记录的nil
不存在。
答案 1 :(得分:0)
我总是将这段代码添加到我的views / layouts / application.html.erb
的底部<% if Rails.env.development? %>
<%= debug(params) %>
<% end %>
它应该告诉你你的params发生了什么。
答案 2 :(得分:0)
params [:id]为零。我会仔细检查它在URL中的传递:
/route/:id
或
/route?id=1
答案 3 :(得分:0)
我在我的:新动作
上有set_property方法