레일 부분 현지인들은 다른 부분으로 보낸 곳으로 보내지 않아서 현지인 자체로 보냈습니다.

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

문제

나는 그렇게 부분적으로 렌더링합니다.

<%= render :partial => 'widgets/some_partial, :locals => {:foo => 'bar'} %>

그래서 내부 _some_partial.html.erb 나는 두 가지 부분을 더 렌더링합니다.

<% #foo.nil? #=> false %>
<%= render :partial => 'widgets/another_partial', :locals => {:foo => foo} %>
`<%= render :partial => 'widgets/another_partial_again', :locals => {:foo => foo} %>`

FOO 로컬 변수는 잘 렌더링됩니다 some_partial.html.erb 그리고 심지어 another_partial_again.html.erb. 그러나 foo 변수는 접근 할 수 없습니다 another_partial.html.erb 렌더 호출에서 명시 적으로 통과했지만.

여기서 무슨 일이 일어나고 있습니까?

도와 주셔서 감사합니다.

도움이 되었습니까?

해결책 2

해결되었습니다. 또한 적절한 로컬 변수를 보내지 않고 컨트롤러와 동일한 부분을 렌더링하고있었습니다. 어쨌든 고마워!!!

다른 팁

나는 가졌다 undefined local variable or method 내가 부분적으로 렌더링 할 때 오류가 나오게 :locals 한정된.

그러나 문제가 발생하는 다른 문제가 있었으므로 다른 사람을 돕는 경우 솔루션을 공유 할 것이라고 생각했습니다. (이 페이지는 결국이 오류를 검색 한 첫 번째 결과였습니다)

기본적으로 사용하십시오 :partial => 'path/to/partial' 당신의 전화에서 render.

<%= render :partial => 'widgets/some_partial', :locals => {:foo => 'bar'} %>

내가하고있는 것처럼 :

<%= render 'widgets/some_partial', :locals => {:foo => 'bar'} %>

저와 같은 레일/루비 초보자가 쉽게 놓칠 수 있습니다.

이 오래된 질문에 부딪쳤다. 나는 같은 문제에 직면했다. 컬렉션이나 레이아웃을 사용하지 않는 경우 Rails 4+를 사용하면 다음과 같습니다. 올바른 방법은 다음과 같습니다.

# Instead of <%= render partial: "account", locals: { account: @buyer } %>
<%= render "account", account: @buyer %>

문서화 된대로 여기.

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