[RUBY-ON-RAILS] 레일 3 루비 : "클래스의 슈퍼 클래스 불일치 ..."
RUBY-ON-RAILS레일 3 루비 : "클래스의 슈퍼 클래스 불일치 ..."
플랫폼 : 맥 OSX 10.6
"C 레일"내 터미널에서, 나는 루비 콘솔을 시작
클래스를 구축하기 위해 3 튜토리얼 레일에 루비를 다음 동안 :
class Word < String
def palindrome? #check if a string is a palindrome
self == self.reverse
end
end
내가 오류 메시지가 :
TypeError: superclass mismatch for class Word
from (irb):33
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
그것은 아무 문제가 없으며 내가 코드를 잘 알고 있다는 튜토리얼을 보여줍니다; 나는 기타 관련 질문을 검색했지만, eruby 대 그들은 모든 관련 3 루비 2에서 마이그레이션 또는 ERB.
해결법
-
==============================
1.당신은 이미 워드 클래스가 다른 곳에서 정의합니다. 나는 레일 3 응용 프로그램 내에서 시도했지만 복제 할 수 없습니다.
당신은 이미 워드 클래스가 다른 곳에서 정의합니다. 나는 레일 3 응용 프로그램 내에서 시도했지만 복제 할 수 없습니다.
두 번째 말씀 클래스를 직접 작성하지 않은 경우, 그것은 당신의 보석 또는 플러그인 가능성이 하나가 이미 정의입니다.
-
==============================
2.이것은 또한 같은 발생할 수 있습니다 :
이것은 또한 같은 발생할 수 있습니다 :
# /models/document/geocoder.rb class Document module Geocoder end end # /models/document.rb require 'document/geocoder' class Document < ActiveRecord::Base include Geocoder end
는 (다른 슈퍼 클래스가 있습니다) 문서 <액티브 :: 자료 전 (Object의 슈퍼 클래스가 있습니다)로드 문서가 필요합니다.
나는 그것이 자동 클래스 로딩을 가지고 있기 때문에 일반적으로 필요하지 않습니다 필요 레일 환경에서 점에 유의해야한다.
-
==============================
3.나는 레일 4 응용 프로그램에 문제가 있었다. 나는 사용자 공간에서 우려를 사용했다.
나는 레일 4 응용 프로그램에 문제가 있었다. 나는 사용자 공간에서 우려를 사용했다.
class User module SomeConcern end end
나는 불일치 오류를 가지고 개발에 모든 벌금을 근무하지만 생산 (I 때문에 진정한 preload_app의 생각). 수정은 매우 간단했다. 난 그냥 초기화를 추가 :
require "user"
건배!
-
==============================
4.지금은이 같은 문제가 없었다. 기본적으로 Word에서 클래스 다른 곳으로 정의하고, 내 생각 엔 그것이 레일 관계 보석에 있다는 것을 의미한다. 그냥 Word2에 말씀을 변경하고 튜토리얼에서 잘 작동합니다.
지금은이 같은 문제가 없었다. 기본적으로 Word에서 클래스 다른 곳으로 정의하고, 내 생각 엔 그것이 레일 관계 보석에 있다는 것을 의미한다. 그냥 Word2에 말씀을 변경하고 튜토리얼에서 잘 작동합니다.
-
==============================
5.때때로 우리없이 우리 '개방 클래스는'알고. 일부 깊은 모듈 중첩와 예를 들면 :
때때로 우리없이 우리 '개방 클래스는'알고. 일부 깊은 모듈 중첩와 예를 들면 :
# space_gun.rb class SpaceGun << Weapon def fire Trigger.fire end end # space_gun/trigger.rb class SpaceGun class Trigger end end
우리가 트리거를 정의 할 때, 우리는 기존의 SpaceGun 클래스를 엽니 다. 이 작동합니다. 우리는 역순으로 두 개의 파일을로드 그러나 경우, 오류가 우리가 먼저 SpaceGun 클래스를 정의하기 때문 제기하지만, 무기없는 것입니다.
우리가 명시 적으로 부모 클래스에서 하위 모듈 (예를 들어, 트리거)를 필요로하기 때문에 때때로 우리는이 실수를. 어떤 클래스 정의가이 문제를 일으키는 원인이되는 역순를 할 것을 의미합니다.
# surely nothing can go wrong if we require what we need first right? require 'space_gun/trigger' class SpaceGun << Weapon def fire Trigger.fire end end # BOOM
어느 한 쪽
from https://stackoverflow.com/questions/5512023/ruby-on-rails-3-superclass-mismatch-for-class by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 내측 텍스트 또는 HTML과 LINK_TO의 IMAGE_TAG (0) | 2020.03.01 |
---|---|
[RUBY-ON-RAILS] PG : ConnectionBad : fe_sendauth는 : 암호가 제공되지 (0) | 2020.03.01 |
[RUBY-ON-RAILS] 레일을 사용하여 이메일에 삽입 이미지에 대한 권리 방법은 무엇입니까? (0) | 2020.03.01 |
[RUBY-ON-RAILS] 설정 / 환경 / development.rb에서 "consider_all_requests_local"의 목적? (0) | 2020.03.01 |
[RUBY-ON-RAILS] 3.1 제한 사용자가 만든 개체 레일 (0) | 2020.03.01 |