导轨,将参数从控制器传递到服务

问题描述

路轨。 在视图中,我有一个提交按钮。在控制器中,我想使用输入(数组)并将其传递给服务。

在控制器中,我尝试过:

class TestDemandController < ApplicationController
  
  def index
  end

  def create
    test_demand = TestDemandService.new(@params)
    test_demand.build(@params)
  end

在服务中:

class TestDemandService

  def initialize(input)
    @input = input
  end

  def build(input)
     ..loop over an array..
  end

我在“循环遍历数组”这一行有此错误: nil:NilClass的未定义方法“ each”

谢谢

解决方法

在控制器中,您可以访问参数(通过表单发布到服务器上的参数)。您也可以在终端中检查参数,它们看起来像: Started POST ...... Parameters: {"key" => "value","another_key" => "Another value"}

要将完整的参数发送到服务,可以向其传递参数:

  def create
    test_demand = TestDemandService.new(params)
    ...
  end

如果您只想从参数中发送特定值,则可以执行以下操作:

  def create
    test_demand = TestDemandService.new(params[:another_key])
    ...
  end

这将为您提供服务中的值another_value

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...