Rails 엔진에서 컨트롤러를 재정의 할 때 원본 파일이 필요합니까?

StackOverflow https://stackoverflow.com/questions/1823361

  •  22-07-2019
  •  | 
  •  

문제

나는 Rails 엔진으로 정의 된 컨트롤러에서 동작을 무시하려고합니다.

클래스를 다시 열기 전에 원본 파일을 요구 해야하는 것 같습니다.

require File.join(RAILS_ROOT, 'vendor/plugins/myplugin/app/controllers/some_controller')
class SomeController

  def index
    render :text => 'this is my index'
  end
end

이것은 의미가 있지만 필요한 것은 매우 추악합니다. 초기 요구를 피할 수있는 일종의 레일 마법이 있습니까?

도움이 되었습니까?

해결책

이것은 완전한 추측입니다 ...

로드 타이밍 문제가 더 많습니다. 에서와 마찬가지로 플러그인 전에 파일이로드됩니다. 당신의 행동은 어디에 있습니까? 구성/이니셜 라이저? lib?

레일 엔진이 언제로드 될지 확신하지 못하므로 위치와 함께 놀아야합니다 (LIB에 넣어야합니다).

또는 더 나은 방법으로 변경 사항으로 고유 한 플러그인을 만들고 원본 이후로드되는지 확인하십시오.

그리고 당신은 아마도 더 많은 것을 원할 것입니다.

SomeController.class_eval do

  def index
    ...
  end

end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top