2015-07-20 47 views
1

我创建新功能正在工作,现在它不知何故被破坏。不知道为什么。动作控制器异常错误

我得到这个错误: enter image description here

而且我行控制器是该

private 
def set_space 
    @space = Space.find(params[:id]) 
    @property = Property.find(params[:id]) 
# @contract = Contract.find(params[:id]) 
end 
+0

在哪个控制器中你有那个代码? – Pavan

+0

根据错误你的参数没有身份证。尝试看看这些参数。 – Athar

+0

@Athar有'params [:id]',但是在数据库中没有id等于'params [:id]' –

回答

0

我总是这个代码块添加到我的意见/布局/ application.html的底部。 erb

<% if Rails.env.development? %> 
    <%= debug(params) %> 
<% end %> 

它应该告诉你什么是你的params。

0

params [:id]是零。我会仔细检查其在URL中传递:

/route/:id 

或者

/route?id=1 
1

您试图通过在控制器的方法一个id获得两项纪录:

@space = Space.find(params[:id]) 
@property = Property.find(params[:id]) 

你应该修改此代码,除非您有意这样做。

其次,在做.find(params[:id])之前,您应该始终检查是否在params[:id]之前收到了有效的id。你可以做到这一点:

@space = Space.find(params[:id]) if params[:id] 

如果你使用,find_by_id,它给你nil如果记录未找到,而不是你在你的情况下所得到的错误消息。

您得到的错误的原因很简单,就是您试图从db访问记录的id不存在。

0

我有我的set_property方法:新动作