레일 부분 현지인들은 다른 부분으로 보낸 곳으로 보내지 않아서 현지인 자체로 보냈습니다.
-
11-09-2019 - |
문제
나는 그렇게 부분적으로 렌더링합니다.
<%= 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 %>
문서화 된대로 여기.
제휴하지 않습니다 StackOverflow