我正在開發一些Rails 3.1中型應用程序,並且當前有一些奇怪的問題隨機發生在我啓動本地服務器後。Rails 3.1真的很奇怪的問題隨機發生
它的服務器開始後確實經常發生,而且大多數時候,如果不是每一次,它是關於一個未定義的方法這實際上是定義。
如果我再放入一些binding.pry或調試只是使應用程序崩潰前行,我嘗試使用自己,我的方法獲得期望的結果(沒有崩潰)。如果我離開調試控制檯,服務器就會恢復正常。
比如我得到:
NoMethodError (undefined method `type=' for #<Publication:0xb398f180>): app/controllers/publications_controller.rb:115:in `new'
如果我去的那個控制器,並添加binding.pry
@publication = current_user.publications.new
binding.pry
@publication.type = type
命中刷新,在控制檯輸入此
Publication.new.type = PublicationType.first
然後離開控制檯,服務器恢復正常。
這似乎只發生在我的本地環境中。部署到生產環境或運行規範後,我從未遇到過這樣的問題。
由於我是唯一一個並不差,但很快其他開發人員將在代碼基礎上工作,所以這將是一個實際的問題。
編輯:
我今天就遇到了這個其他錯誤:
undefined method `color_class' for #<Publication:0xb39e44f0>
從
= link_to truncate(comment.publication.title, :length => 30), comment.publication, :class => "category-font #{comment.publication.color_class}"
然後,我只是做了binding.pry伎倆和類型
comment.publication.color_class
然後離開了控制檯,一切正常......
編輯2:
OK現在它變得更加怪異......
我如上遇到同樣的問題, color_class之一。除了這次介紹的招不起作用,見撬輸出:
3: = link_to publication_path(comment.publication, :anchor => "comment-#{comment.id}") do 4: = link_to comment_excerpt(comment), comment_link(comment), :class => "comment_excerpt" 5: \- 6: = link_to comment.author.username, comment.author 7: \- => 8: - binding.pry 9: = link_to truncate(comment.publication.title, :length => 30), comment.publication, :class => "category-font #{comment.publication.color_class}" [1] pry(#>)> comment.publication.color_class NoMethodError: undefined method `color_class' for # from /home/jerefrer/.rvm/gems/ruby-1.8.7-p352/gems/activemodel-3.1.0/lib/active_model/attribute_methods.rb:385:in `method_missing' [2] pry(#>)> comment.publication.category NoMethodError: undefined method `category' for # from /home/jerefrer/.rvm/gems/ruby-1.8.7-p352/gems/activemodel-3.1.0/lib/active_model/attribute_methods.rb:385:in `method_missing' [3] pry(#>)> comment.publication.id => 139 [4] pry(#>)> comment.publication == Publication.find(139) => false [5] pry(#>)> Publication.find(139).color_class => "some-class"
而且我似乎無法找到任何招這個時候......繼續得到同樣的錯誤...
編輯3:
而且一個新的!
> Comment.includes(:publication => :author).order('created_at DESC').limit(10)
Hirb Error: Association named 'author' was not found; perhaps you misspelled it?
> Comment.order('created_at DESC').limit(10)
[is working]
> Comment.order('created_at DESC').limit(10).first.author
[is working]
任何想法?
假設'Publication'是'ActiveRecord'模型,你應該除了作爲單表繼承的一部分外,不要使用'type'。你是? – Chowlett
@Chowlett 其實我有刊物belongs_to:type,:foreign_key =>「publication_type_id」,:class_name =>「PublicationType」。 我只是爲了方便起見,但會嘗試在所有地方使用publication_type來查看它是否可以防止此問題。 無論如何,我遇到類似的問題(請參閱帖子編輯),但與此「類型」字段無關。 –