open-uri的open方法与ActiveRecord open属性冲突

时间:2014-03-04 16:59:13

标签: ruby-on-rails activerecord

我该如何解决这个问题?我怎样才能找到哪个open-uri模块与我的模型发生冲突。

以下是一些使问题更清晰的输出:

m=MyModel.new
m.open
NoMethodError: private method `open' called for #<MyModel:0xcd889b4>
from /var/lib/gems/2.0.0/gems/activemodel-3.2.14/lib/active_model/attribute_methods.rb:404:in `method_missing'

以下是该文件在404附近所包含的内容:

def method_missing(method, *args, &block)
  if respond_to_without_attributes?(method, true)
    super # line 404
  else
    match = match_attribute_method?(method.to_s)
    match ? attribute_missing(match, *args, &block) : super
  end
end

我忘了写open-uri部分,请参阅:

m.open=Time.now
=> 2014-03-04 17:00:04 +0000
m.save
ArgumentError: wrong number of arguments (0 for 1+)
from /usr/lib/ruby/2.0.0/open-uri.rb:28:in `open'

更新

我刚发现open is an invalid column name

如何处理?除了更改列名,因为它在大型代码库中使用。

1 个答案:

答案 0 :(得分:0)

现在更改列名将意味着将来减少痛苦。试图解决这个问题会让你开始接受更大的问题。