와 부분 렌더링에 : 뷰에서 렌더링 할 때정의되지 않은 메서드`fragment_for 'NilClass 나는 레일 2.3.14에 대한 몇 가지 코드에 대한 부분에이 코드 조각이 캐시
<% cache "some_partial_#{some_id}" do %>
....
<% end %>
잘 작동합니다 하지만 난 얻을 :
undefined method `fragment_for' for nil:NilClass
내가 모델에서이 작업을 수행하려고하면
ActionView::Base.new("app/views").render(:partial => "home/temp"}
내가 actionpack-2에서 발생하는 문제를 볼 수 있습니다. 3.14/lib 디렉토리/ACTION_VIEW/헬퍼/cache_helper.rb : 35
def cache(name = {}, options = nil, &block)
@controller.fragment_for(output_buffer, name, options, &block)
end
가 나는 @Controller에서 찾을 것으로 예상 정확히 모르겠어요.
모델에서 렌더링하는 것이 대단히 나쁜 습관에 동의하지만,이 큰 응용 프로그램 중 많은 기능이 그런 기능을 사용하기 때문에 선택의 여지가없는 상황 중 하나입니다. 나는 def cache를 오버라이드하고 컨트롤러를 배치하려고 시도했다. 그러나 ApplicationController는 예상대로 ApplicationController는 실제로 어디에도 fragment_for를 정의하지 않았으므로 그 컨트롤러에서 뭔가 다른 것을 기다리고있다. – Razvan
내 업데이트 된 답변보기 @ user1713669 –