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 on rails RubyonRails。ArgumentError(参数数目错误(1代表5))。标题应该匹配_Ruby On Rails_Ruby_Arguments - Fatal编程技术网

Ruby on rails RubyonRails。ArgumentError(参数数目错误(1代表5))。标题应该匹配

Ruby on rails RubyonRails。ArgumentError(参数数目错误(1代表5))。标题应该匹配,ruby-on-rails,ruby,arguments,Ruby On Rails,Ruby,Arguments,我确信这是一件愚蠢的事情,但它踢我的屁股。我得到ArgumentError(错误的参数数量(1对5)),但就我所见,头和方法调用匹配 错误页(照片) 错误页(文本,与照片相同) 这是我打电话的控制器 class MessageServiceController < ApplicationController include MessageServiceHelper def put $messageSplit = params[:message].split(",")

我确信这是一件愚蠢的事情,但它踢我的屁股。我得到ArgumentError(错误的参数数量(1对5)),但就我所见,头和方法调用匹配

错误页(照片) 错误页(文本,与照片相同)

这是我打电话的控制器

class MessageServiceController < ApplicationController
  include MessageServiceHelper

  def put

    $messageSplit = params[:message].split(",")

    $to_host = $messageSplit[0]
    $from_host = $messageSplit[1]
    $service = $messageSplit[2]
    $message = $messageSplit[3]
    $arguments = $messageSplit[4]

    storeMessage(from_host:$from_host, to_host:$to_host, service:$service, message:$message, arguments:$arguments)

    render :layout => false
  end
我看不出有什么问题,但我已经想了一天了。注意,我已经看了关于错误数量的论点的其他问题,它们似乎是不同的问题


谢谢您的帮助。

您的错误表明您给了一个需要五个参数的方法一个参数:
storeMessage
被定义为需要五个参数,但是当您在控制器上调用它时,您只传递了一个散列:

storeMessage(from_host:$from_host, to_host:$to_host, service:$service, message:$message, arguments:$arguments)
按以下方式更改您的通话:

storeMessage($from_host, $to_host, $service, $message, $arguments)
你会看到错误消失了

从您的代码中,我认为您正在将Ruby语法与其他语言(如PHP)混合。我建议你看一下设计和风格指南。更准确地说,您正在控制器中定义所有变量(使用
$
),我很确定您不需要/不想这样做

storeMessage(from_host:$from_host, to_host:$to_host, service:$service, message:$message, arguments:$arguments)
storeMessage($from_host, $to_host, $service, $message, $arguments)