NameError:未定义的局部变量或方法`params' for main:来自(irb)的对象:7

时间:2016-08-19 19:59:57

标签: ruby-on-rails ruby

这是subject_controller

Subject.find(params[:id]) 

这是' show.html.erb'

{{1}}

所以当我点击浏览器上的某些内容时,我什么也得不到,当我在rails console上执行此操作时

{{1}}

我收到此消息
NameError:未定义的局部变量或方法`params' for main:来自(irb)的对象:7

2 个答案:

答案 0 :(得分:0)

您当前的控制台上下文中未定义

params。您正尝试在控制台中重新创建控制器代码。在控制器中,根据传入的HTTP请求参数自动分配params。在控制台中,除非您明确指定,否则params是未定义的。在你的控制台中试试这个:

params = {id: 1}
Subject.find(params[:id]) 

如果Subject实际上是ActiveRecord模型,则不会抛出错误。

你真正想要完成什么?

答案 1 :(得分:0)

如果要调试控制器,请使用prybyebug获取特定上下文的调试控制台,例如:

def edit
  binding.pry
  @subject = Subject.find(params[:id])
end

转到subjects/1/edit路径,rails服务器在断点处停止,您可以访问调试控制台。