2010-02-23 3 views
1

레일스 용 "in_place_editing"플러그인을 사용하여 내부 편집으로 양식을 렌더링합니다. 기본 템플릿이 레일즈 (컨트롤러 내부에서 'render'메쏘드가 호출되지 않음)에 의해 선택되는 한 정상적으로 작동하지만, render : partial => 'partial_name' "호출을 사용하여 부분 렌더링을 시도 할 때 고장납니다. 이 문제는 알려진 문제입니까 (in_place_edit가 partials와 작동하지 않습니까?) 또는 누락 된 것이 있습니까?partial과 레일에 in_place_edit 플러그인을 사용하는 방법은 무엇입니까?

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 
.../vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb:74:in `in_place_editor_field' 

답변

1

당신은 두 역 추적의 라인 및 작업을 수행하는보기없이 조각, 또는를 제공, 귀하의 질문에 충분한 정보를 근처 어디서나 제공하지 않습니다 부분 렌더링하는 동안 다음과 같은 오류를 얻고있다 부분적이지 않은. 즉, 대답하려는 모든 시도는 주로 추측에 근거해야합니다. 즉, in-place 편집기 도우미는 다른 것과 마찬가지로 도우미 메서드 일 뿐이며 특별한 것은 없습니다. 거의 모든보기 구성 요소에서 호출 할 수 있습니다. 해당 뷰가 컨트롤러 또는 부모 뷰에 포함되는 방식이 실패하는 이유는 아닙니다.

도우미 메서드가 nil 값에 대해 불평하고 있습니다. 즉, 부분이 in_place_editor_field을 호출하고 부분에 정의되지 않은 값을 전달할 가능성이 높습니다. in_place_editor_field 호출이 작동하는보기에 사용 된 것과 비교하여 정의되지 않은 로컬 변수를 사용하고 있지 않은지 확인하십시오. 다른 인스턴스 변수도 요구하지 않는지 확인하십시오. 모든 변수에서 하나의 변수 이름을 사용하고있는 반면, 렌더링하려는 부분은 다른 변수 이름을 사용하고 있습니다.

render :partial => ... 메커니즘은 부분적으로 값을 명시 적으로 전달하는 다양한 방법을 지원합니다. 이러한 코드를 사용하여 코드를 명확히 할 수 있습니다. 에서 레일 API의 렌더링 문서의 "파셜 렌더링"섹션의 :locals:object 옵션을 참조하십시오 : 나는 레일 2.3.8에있는 유지 보수 프로젝트를 진행하고

+0

나의 사과 : 그리고이 문제는 인스턴스 변수를 가지고보기를 변경, 뷰에서 내 시간

을 많이 먹었다. 하지만 기본적으로 README를 읽은 후 in_place_editing 플러그인을 사용하려고했는데 기본적으로 2 줄 (컨트롤러의 변경 사항과보기의 다른 내용)이 있습니다. 나는 지금 큰 실수임을 깨닫는다! 플러그인이 작동하기 위해 정의 된 모델과 정확한 이름을 가진 인스턴스 변수를 필요로한다는 것을 알게되었습니다. README가 조금 더 명시 적으로 (아마 인스턴스 변수 정의의 세 번째 줄) 좋겠다. 귀하의 답변 주셔서 감사합니다, 당신은 내가 준 정보로 완벽하게 오류를 잡았 어 :) – Raghu

+0

그래. 슬프게도 Rails는 문서화 작업에 매우 고생합니다. 이제 Rails Guides는 큰 발전을 가져 왔지만 많은 관련 플러그인과 보석에 대해서도 마찬가지라고 할 수 없습니다. 원래의 In-place 편집기 플러그인에서 여러 가지 API 문제점 중 하나가 발생하는 경우가 있습니다. 필자는 예전에 사용하던 거대한 XSS 취약점을 해결하기 위해 대체품을 작성했으며, 코어 플러그인에 부족한 몇 가지 기능을 여전히 가지고 있습니다. 뻔뻔한 플러그 : http://rubyforge.org/projects/safeinplaceedit/ –

0

. 정보의 부족에 대한

@batch = batch 

in_place_editor_field :batch, 'priority' 
관련 문제