NoMethodError:调用#<Item>的私有方法“ desc”(命名空间错误?)

时间:2019-07-11 18:45:35

标签: ruby-on-rails-4 railtie

我可以在Rails控制台上执行以下操作:

item = FactoryBot.create(:item)

哪个项目创建的字段中有一堆字段,不幸的是,其中包含一个名为desc的字段。

所以现在当我尝试访问item.desc时,出现此错误:

NoMethodError: private method `desc' called for #<Item:0x000000073b1da0>
    from vendor/ruby/2.1.0/gems/activemodel-4.2.11.1/lib/active_model/attribute_methods.rb:430:in `method_missing'
    from (irb):44
    from vendor/ruby/2.1.0/gems/railties-4.2.11.1/lib/rails/commands/console.rb:110:in `start'
    from vendor/ruby/2.1.0/gems/railties-4.2.11.1/lib/rails/commands/console.rb:9:in `start'
    from vendor/ruby/2.1.0/gems/railties-4.2.11.1/lib/rails/commands/commands_tasks.rb:68:in `console'
    from vendor/ruby/2.1.0/gems/railties-4.2.11.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from vendor/ruby/2.1.0/gems/railties-4.2.11.1/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

其他所有字段都可以正常工作,如果我在控制台上键入item,它将显示所有字段,包括desc

我假设问题是当我调用item.desc时,有些事情变得令人困惑,并调用了另一种desc方法,该方法是私有的,大概属于Rails。

但是我完全不确定该怎么办?我无法重命名项目上的本地desc字段。那么如何让我的领域与其他方法很好地比赛?

ETA:我可以使用item["desc"]访问描述字段,但是我仍然想知道是否有一种方法可以强制其他方法运行。

0 个答案:

没有答案