如何将数组作为单独的参数传递给方法

尚卡德维

这似乎接近我的需求,但对我而言不起作用。

在Ruby中实现`call_user_func_array`

我有一个常量列表

TYPE = %w(:groups :projects)

在我的RelatedList模型上使用https://github.com/brainspec/enumerize

enumerize :list_type, in: %w(groups projects), scope: :type

因此,根据github页面上的文档,

RelatedList.type(:groups) # returns all RelatedList of type 'groups'

但是,我想获取我的常量TYPE中包含的所有RelatedList

所以我尝试了

RelatedList.type(TYPE) # doesn't work
RelatedList.send(:type, TYPE) # doesn't work
RelatedList.send(:type, *TYPE) # doesn't work.

RelatedList.type期望将单独的参数列表作为符号,但是我所拥有的是符号数组。

我该如何实现?


根据下面答案中的DNNX请求,这是完整的回溯。

NoMethodError: undefined method `value' for nil:NilClass
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/enumerize-bc01a5cb3c79/lib/enumerize/activerecord.rb:34:in `block (2 levels) in _define_scope_methods!'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/enumerize-bc01a5cb3c79/lib/enumerize/activerecord.rb:34:in `map'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/enumerize-bc01a5cb3c79/lib/enumerize/activerecord.rb:34:in `block in _define_scope_methods!'
    from (irb):2
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus/rails.rb:134:in `console'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:116:in `block in command'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:103:in `fork'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:103:in `command'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:80:in `block (3 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:80:in `fork'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:80:in `block (2 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `each'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `block in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `loop'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `block (3 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `fork'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `block (2 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `each'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `block in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `loop'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `block (3 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `fork'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:78:in `block (2 levels) in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `each'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:73:in `block in go'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `loop'
    from /Users/kw/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/zeus-0.13.3/lib/zeus.rb:62:in `go'
DNNX

...我所拥有的是一系列符号

不,不是。TYPE = %w(:groups :projects)是两个字符串组成的数组,':groups'':projects'不是符号数组。

尝试以下方法:

TYPE = %w(groups projects)
RelatedList.type(*TYPE)

或者,如果您很幸运并且可以在Ruby 2.0.0上运行您的应用程序,请使用符号数组文字:

TYPE = %i(groups projects)
#=> [:groups, :projects]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数组(未知长度)的所有元素作为单独的参数传递给函数?

来自分类Dev

如何将JSON数组作为参数传递给URL

来自分类Dev

如何将Swift数组作为参数传递给线程?

来自分类Dev

如何将常量数组作为参数传递给C ++函数/方法

来自分类Dev

如何将类作为可选参数传递给方法?

来自分类Dev

如何将列表作为参数传递给方法

来自分类Dev

JavaScript将数组作为单独的参数传递给函数

来自分类Dev

如何将集合列表作为单独的参数传递给函数?

来自分类Dev

如何将未知维度的数组作为方法参数传递?

来自分类Dev

如何将数组作为参数传递?

来自分类Dev

如何将函数作为参数传递给参数?

来自分类Dev

如何将数组传递给方法?

来自分类Dev

如何将方法作为参数传递?

来自分类Dev

如何将类型定义的块作为参数传递给本身是方法参数的块?

来自分类Dev

如何将类型定义的块作为参数传递给本身是方法参数的块?

来自分类Dev

如何将变量作为cURL数组中的url参数传递给CURLOPT_URL

来自分类Dev

如何将数组或列表作为参数传递给PowerShell函数?

来自分类Dev

如何将数组作为参数传递给最大值函数?

来自分类Dev

如何将私有数组作为参数传递给OpenCL内核?

来自分类Dev

我如何将列表,数组或字符串作为参数传递给redshift

来自分类Dev

如何将整个numpy数组作为python中的参数传递给用户定义的函数?

来自分类Dev

如何将数组或列表作为参数传递给PowerShell函数?

来自分类Dev

如何将数组作为实际参数而不是全局变量传递给函数

来自分类Dev

BASH:如何将数组中的字符串作为参数传递给命令?

来自分类Dev

如何将float数组和float作为参数传递给C中的函数

来自分类Dev

如何将数组列表作为参数传递给片段并检索它

来自分类Dev

如何将数组作为参数传递给 TCL 脚本命令行运行?

来自分类Dev

如何将 jenkins 参数作为数组传递给 bash 脚本?

来自分类Dev

如何将数组作为参数传递给 Java 图形函数?

Related 相关文章

  1. 1

    如何将数组(未知长度)的所有元素作为单独的参数传递给函数?

  2. 2

    如何将JSON数组作为参数传递给URL

  3. 3

    如何将Swift数组作为参数传递给线程?

  4. 4

    如何将常量数组作为参数传递给C ++函数/方法

  5. 5

    如何将类作为可选参数传递给方法?

  6. 6

    如何将列表作为参数传递给方法

  7. 7

    JavaScript将数组作为单独的参数传递给函数

  8. 8

    如何将集合列表作为单独的参数传递给函数?

  9. 9

    如何将未知维度的数组作为方法参数传递?

  10. 10

    如何将数组作为参数传递?

  11. 11

    如何将函数作为参数传递给参数?

  12. 12

    如何将数组传递给方法?

  13. 13

    如何将方法作为参数传递?

  14. 14

    如何将类型定义的块作为参数传递给本身是方法参数的块?

  15. 15

    如何将类型定义的块作为参数传递给本身是方法参数的块?

  16. 16

    如何将变量作为cURL数组中的url参数传递给CURLOPT_URL

  17. 17

    如何将数组或列表作为参数传递给PowerShell函数?

  18. 18

    如何将数组作为参数传递给最大值函数?

  19. 19

    如何将私有数组作为参数传递给OpenCL内核?

  20. 20

    我如何将列表,数组或字符串作为参数传递给redshift

  21. 21

    如何将整个numpy数组作为python中的参数传递给用户定义的函数?

  22. 22

    如何将数组或列表作为参数传递给PowerShell函数?

  23. 23

    如何将数组作为实际参数而不是全局变量传递给函数

  24. 24

    BASH:如何将数组中的字符串作为参数传递给命令?

  25. 25

    如何将float数组和float作为参数传递给C中的函数

  26. 26

    如何将数组列表作为参数传递给片段并检索它

  27. 27

    如何将数组作为参数传递给 TCL 脚本命令行运行?

  28. 28

    如何将 jenkins 参数作为数组传递给 bash 脚本?

  29. 29

    如何将数组作为参数传递给 Java 图形函数?

热门标签

归档