小编dem*_*mir的帖子

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

我正在使用 Rails 5。我有这个控制器......

class MyObjectsController < ApplicationController

  def create
    my_object = MyService.build(create_params)
Run Code Online (Sandbox Code Playgroud)

我想在 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))
Run Code Online (Sandbox Code Playgroud)

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

console controller ruby-on-rails ruby-on-rails-5

4
推荐指数
1
解决办法
4789
查看次数

如何找到并用“ None”或0替换Ruby哈希的“ nil”值?

我正在尝试在嵌套嵌套数组的迭代中向下钻取每个值,并用nil“ None”或0之类的值替换所有值。请查看我的代码显然不起作用。我需要先解决此问题,然后再将其传递给Rails视图进行迭代和渲染:

我的控制器:

def show
  results = Record.get_record(params[:trans_uuid])
  if !results.empty?
    record = results.map { |res| res.attributes.symbolize_keys }
    @record = Record.replace_nil(record) # this calls method in Model
  else
    flash[:error] = 'No record found'
  end
end
Run Code Online (Sandbox Code Playgroud)

我的模特:

def self.replace_nil(record)
  record.each do |r|
    r.values == nil ? "None" : r.values
  end
end
Run Code Online (Sandbox Code Playgroud)

record传递给Model方法时self.replace_nil(record如下所示:

[{:id=>1, :time_inserted=>Wed, 03 Apr 2019 15:41:06 UTC +00:00, :time_modified=>nil, :request_state=>"NY", :trans_uuid=>"fe27813c-561c-11e9-9284-0282b642e944", :sent_to_state=>-1, :completed=>-1, :record_found=>-1, :retry_flag=>-1, :chargeable=>-1, :note=>"", :bridge_resultcode=>"xxxx", :bridge_charges=>-1}]
Run Code Online (Sandbox Code Playgroud)

ruby hash null ruby-on-rails

3
推荐指数
1
解决办法
73
查看次数

红宝石:未定义的方法排除?

我尝试使用相反的include方法吗?在ruby中,它是“ string | array.exclude?”,这是我在交互式ruby上的代码。

this = "nice"
puts this.exclude? "n"
Run Code Online (Sandbox Code Playgroud)

但是,它总是声明一个错误。

追溯(最近一次通话):

    4: from C:/Ruby26-x64/bin/irb.cmd:31:in `<main>'
    3: from C:/Ruby26-x64/bin/irb.cmd:31:in `load'
    2: from C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `<top (required)>'
    1: from (irb):14
Run Code Online (Sandbox Code Playgroud)

NoMethodError(未定义的方法“排除?”的“ nice”:字符串)

我做了很多研究,但没有找到解决方案。我不知道这是否只会发生在我身上,这让我非常烦恼。

有人可以帮我吗。非常感谢你。

ruby

1
推荐指数
2
解决办法
78
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

console ×1

controller ×1

hash ×1

null ×1

ruby-on-rails-5 ×1