2011-09-02 1 views
1

지역 주민을 부분 레일로 넘겨 줄 수 없다.

부분적으로 _new_user_form.html.erb

<%= form_for(@user, :remote => true, :html => {:id => 'new_user_form'}) do |f|%> 
    <strong><%= :form_text %></strong> 
    <%= f.text_field :email, :placeholder => get_placeholder_text(@board), :size => "30" %> 
    <%= hidden_field_tag :role, role %> 
    <%=f.submit "SAVE", :class => "button-small" %> 
<% end %> 

show.rb에서 사용하고 일부 부분 변수를 다음과 같이 전달합니다.

<%= render 'users/new_user_form', :locals=> {:role => "Celebrant" } %> 

그러나이 오류가 발생합니다.

undefined local variable or method `role' for #<#<Class:0x00000103d5e8b0>:0x00000103d5b930> 

나는 현지인들을 데려가는 것에 관한 문서를 읽었는데 이것이 맞는 것 같다. 내가 뭘 잘못하고 있죠?

답변

4

짧은 양식과 긴 양식을 결합했습니다. 둘 중 하나가 정확합니다 (동일).

render 'my_partial', :foo => 'bar' 

render :partial => 'my_partial', :locals => { :foo => 'bar' } 
+0

너무 빨리 돌아와 주신 Coreyward에게 감사드립니다. 첫 번째 줄을 사용하여 작업했습니다. – chell

3

나는 render을 잘못 호출한다고 생각합니다. fine manual에서 :

If no options hash is passed or :update specified, the default is to render a partial and use the second parameter as the locals hash.

그래서 당신은 원본이 지점 아래에 가고 결국 :

render :partial => 'users/new_user_form', :locals => { :locals => { :role => 'Celebrant } } 

주 여분을 :

view_renderer.render_partial(self, :partial => options, :locals => locals) 

을하고는 전화를 만드는이 같은 :locals에 대한 중첩 수준. 사용해보기 :

render 'users/new_user_form', { :role => 'Celebrant' } 

여러분의 버전이 약간 다를 수 있으므로 3.1을보고 있습니다.

+0

감사 Mu가 너무 짧습니다. 설명은 환상적입니다. – chell

관련 문제