2011-02-10 6 views
1

플러그인은 User이라는 모델을 제공합니다. 내 앱에서 다시 열 수 있습니까?메인 레일즈 애플리케이션에서 플러그인 모델 다시 열기

app/models/user.rb을 작성하여 거기서 시도하면 전체 모델이 다시 정의되고 원래의 플러그인 메소드를 더 이상 사용할 수 없습니다. 플러그인 코드를 수정하지 않고이 일을하는 방법이 있다면

# app/models/plugin_user.rb 
class PluginUser 
    def self.load 
    User.class_eval do 
     # my code here 
    end 
    end 
end 

# plugin model: 
class User 
    # ... 
end 

PluginUser.load 

그것은 좋은 것 :

+0

어떻게 User 클래스를 다시여시고 있습니까? (in app/models/user.rb) –

+0

'class User Ivan

+0

그건 그렇고,'lib' 폴더에있는 파일에서'class_eval'을 사용할 수있을 것 같아요.하지만 모든 변경 사항으로 다시 시작해야하고, app/models에서 다시 열기만하면됩니다. – Ivan

답변

1

이것은 내가 지금까지 발견 된 유일한 방법입니다. 이 경우에는 플러그인이 내 것이기 때문에 문제가되지 않지만 다른 플러그인에 동일한 작업을 수행해야한다면이를 포크화할 필요가 있습니다.

관련 문제