Ruby on rails Rails控制器参数未定义

Ruby on rails Rails控制器参数未定义,ruby-on-rails,Ruby On Rails,我正在尝试在Rails上创建一个简单的api。(v4.1.8) 然而,我发送的参数似乎从未到达控制器。 我总是得到: undefined method `parameters' for nil:NilClass 控制器代码为: class API::V1::ServiceController < ApiBaseController def initialize puts 'OK. I am here.' # <---- I can get here without er

我正在尝试在Rails上创建一个简单的api。(v4.1.8) 然而,我发送的参数似乎从未到达控制器。 我总是得到:

undefined method `parameters' for nil:NilClass
控制器代码为:

class API::V1::ServiceController < ApiBaseController
  def initialize
    puts 'OK. I am here.' # <---- I can get here without error.
    puts params.inspect # <---- Here is where the error occur.
    render json: {message: 'Test completed.'}
  end
end
我的测试URL:

http://localhost:3000/api/v1/initialize?param1=one

此错误是由于将
initialize
用作操作名称所致。在Ruby中,
initialize
是一个关键字,表示类构造函数。在这种情况下,在初始化控制器类之前调用params,因此会出现错误


有关
initialize
关键字的详细信息,请参阅。

此错误是由于将
initialize
用作操作名称所致。在Ruby中,
initialize
是一个关键字,表示类构造函数。在这种情况下,在初始化控制器类之前调用params,因此会出现错误


有关
initialize
关键字和此项的更多信息,请参阅。

哪一行抛出此错误?在
nil
对象上调用方法时会引发此类错误。在本例中,在某个点上,您正在执行
@some\u object.parameters
,但是当我尝试访问“params”时,
@some\u object
nil
,正如您在控制器代码中看到的那样,我在那里放置了一个标记。我认为问题在于方法名
initialize
。在ruby中,initialize方法表示构造函数。尝试重命名该方法。@Santhosh是的,我认为这就是原因。我改为初始化系统,错误消失了。也许你可以回答,我会把它标记为答案。是否有指向所有保留方法名称的引用链接?很高兴它起作用了。我在答案中添加了2个参考链接。哪一行会抛出此错误?在
nil
对象上调用方法时会引发此类错误。在本例中,在某个点上,您正在执行
@some\u object.parameters
,但是当我尝试访问“params”时,
@some\u object
nil
,正如您在控制器代码中看到的那样,我在那里放置了一个标记。我认为问题在于方法名
initialize
。在ruby中,initialize方法表示构造函数。尝试重命名该方法。@Santhosh是的,我认为这就是原因。我改为初始化系统,错误消失了。也许你可以回答,我会把它标记为答案。是否有指向所有保留方法名称的引用链接?很高兴它起作用了。我在答案中添加了2个参考链接。
namespace :api , :defaults => {:format => :json} do
  namespace :v1 do
    get 'initialize',       to: 'service#initialize'
  end
end
http://localhost:3000/api/v1/initialize?param1=one