首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redmine中的runner来自NoMethodError /runner

Redmine中的runner来自NoMethodError /runner
EN

Stack Overflow用户
提问于 2012-11-20 19:48:27
回答 1查看 218关注 0票数 1

我有一些Ruby代码需要在Redmine Ruby应用程序中执行,以便同时在所有项目中启用一个模块。

令人惊讶的是,ruby确实访问了项目,但在访问每个“项目”对象中的一些特定方法时会引发一个NoMethodError。

代码如下:

代码语言:javascript
复制
Project.find(:all).each do |project|

  print "Enabling modules for project '#{project.identifier}' ... "

  puts project.methods.sort            # this does print "enabled_module_names"
  puts project.enabled_module_names

end

此操作失败,出现以下错误:

代码语言:javascript
复制
hostname:/srv/apps/redmine# script/runner  vendor/plugins/customplugin/lib/enable_modules.rb
/var/lib/gems/1.8/gems/activerecord-2.3.5/lib/active_record/attribute_methods.rb:260:in `method_missing': undefined method `enabled_module_names' for #<Project:0x7f28985c1cb0> (NoMethodError)
    from vendor/plugins/customplugin/lib/enable_modules.rb:14
    from vendor/plugins/customplugin/lib/enable_modules.rb:7:in `each'
    from vendor/plugins/customplugin/lib/enable_modules.rb:7
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `eval'
    from /var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:46
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/runner:3

我已经抓了很多次头,但我不明白为什么代码能找到“项目”符号而不能找到其中的方法,尤其是"project.methods“确实列出了"enabled_module_names”。

欢迎任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-20 19:50:23

您确定enable_module_names是实例方法吗?

它在Project.instance_methods中吗

编辑(评论摘要如下):

在早期版本中,您必须使用以下命令:

代码语言:javascript
复制
enabled_module_names = project.enabled_modules.collect(&:name)

getter仅在更高版本中存在(有关此更改的详细信息,请参阅rev.4460 )

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13472558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档