在Rails控制台中调用参数时如何将参数传递给控制器 方法?

问题描述 投票:0回答:3

我正在使用Rails5。我有此控制器...

class MyObjectsController < ApplicationController

  def create
    my_object = MyService.build(create_params)

我想在Rails控制台中调用create方法,但出现此错误...

irb(main):007:0> MyObjectsController.new.create(:id => "abc")
Traceback (most recent call last):
        2: from (irb):7
        1: from app/controllers/my_objects_controller.rb:4:in `create'
ArgumentError (wrong number of arguments (given 1, expected 0))

如何将参数传递给控制器​​方法?

ruby-on-rails controller console ruby-on-rails-5
3个回答
0
投票
您可以通过其他方法传递参数:

class MyObjectsController < ApplicationController def create my_object = MyService.build(@create_params) end def pass_create_params(create_params = {}) @create_params = create_params create end end

然后在控制台中调用pass_create_params

MyObjectsController.new.pass_create_params(id: 'abc')

0
投票

app.post“?create_params [id] = abc”

例如

app.post'/ users?user [name] = test&user [age] = 20'

将通过以下{“ user” => {“ name” =>“ test”,“ age” =>“ 20”}}] >>

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.