Rails控制器参数未定义

时间:2015-03-20 05:48:47

标签: 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 error.
    puts params.inspect # <---- Here is where the error occur.
    render json: {message: 'Test completed.'}
  end
end

ApiBaseController一无所获:

class ApiBaseController < ActionController::Base

end

路线:

namespace :api , :defaults => {:format => :json} do
  namespace :v1 do
    get 'initialize',       to: 'service#initialize'
  end
end

我的测试网址:

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

1 个答案:

答案 0 :(得分:4)

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

有关initialize关键字以及此this的详细信息,请参阅list of all ruby keywords