操作控制器异常错误

时间:2015-07-20 17:02:23

标签: ruby-on-rails rails-activerecord

我的创建新功能正在运行,不知怎的,它现​​在已经坏了。不知道为什么。

我收到此错误: enter image description here

我的直线控制器就是这个

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

4 个答案:

答案 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方法