Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 参数数目错误-在initialize方法中_Ruby - Fatal编程技术网

Ruby 参数数目错误-在initialize方法中

Ruby 参数数目错误-在initialize方法中,ruby,Ruby,我无法找出这个极其简单的错误: xyz_controller.rb: @isbn = params[:q] @search_type = params[:search_type] ... @prices = Generalsearch.new(:search_term => @isbn, :search_type => @search_type) generalsearch.rb attr_accessor :search_term , :sea

我无法找出这个极其简单的错误:

xyz_controller.rb:
    @isbn = params[:q]
    @search_type = params[:search_type]
... 
    @prices = Generalsearch.new(:search_term => @isbn, :search_type => @search_type)

generalsearch.rb

    attr_accessor :search_term , :search_type
    def initialize(search_term , search_type)
      self.search_term= search_term
      self.search_type= search_type
    end
...
我一直在

wrong number of arguments (1 for 2)
app/models/generalsearch.rb:11:in `initialize'
app/controllers/book_controller.rb:47:in `new'
app/controllers/book_controller.rb:47:in `view' 

在初始化函数上接受2个参数时,必须使用,而不是参数的散列

@prices = Generalsearch.new(@isbn, @search_type)

在初始化函数上接受2个参数时,必须使用,而不是参数的散列

@prices = Generalsearch.new(@isbn, @search_type)

您只传递了一个参数,即在Generalsearch.new()中的hash
:search\u term=>@isbn,:search\u type=>@search\u type

使用


您只传递了一个参数,即在Generalsearch.new()中的hash
:search\u term=>@isbn,:search\u type=>@search\u type

使用

如果你想用

Generalsearch.new(:search_term => @isbn, :search_type => @search_type)
然后您可以在
初始化
方法中

def initialize(options)
  # You can also use options[:search_term], 
  # but fetch lets you know if the key doesn't exist
  self.search_term= options.fetch(:search_term) 
  self.search_type= options.fetch(:search_type)
end
如果你想用

Generalsearch.new(:search_term => @isbn, :search_type => @search_type)
然后您可以在
初始化
方法中

def initialize(options)
  # You can also use options[:search_term], 
  # but fetch lets you know if the key doesn't exist
  self.search_term= options.fetch(:search_term) 
  self.search_type= options.fetch(:search_type)
end