2014-03-04 61 views
0

我該如何解決這個問題?我怎麼才能找到哪個open-uri模塊與我的模型發生衝突。open-uri與ActiveRecord開放屬性衝突的開放方法

下面是一些輸出,使問題更加清晰:

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 

我忘了寫開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

如何處理?除了更改列名稱以外,因爲它在大型代碼庫中使用。

回答

0

現在更改列名將意味着未來更少的痛苦。試圖解決這個問題會讓你面對更大的問題。

+0

實際上,我的一個合作伙伴,從零開始創建了一個Rails項目,並且使用'open',任何嫌疑人都可以工作嗎? – juanpastas