我可以在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"]
访问描述字段,但是我仍然想知道是否有一种方法可以强制其他方法运行。