2016-04-10 43 views
4

Bu aptalca, kolay bir düzeltme gibi görünüyor (muhtemelen öyle) ama web'de SO ve diğer alanları hiç şanssız olarak araştırıyorum. Benim görüşüme göre benim kısmi kullanılan bir undefined method local variable error 'f' alıyorum. "Blok yap" ın bir şekilde partiye ulaşmadan önce bittiğini sanıyorum ama% 100 emin değilim.Tanımsız Yerel Değişken veya Yöntem "f" Görünüm kısmi olarak

Yardımlarınız için şimdiden teşekkür ederiz. Şu anda Rails'i çok kolay öğreniyor olsam çok yanımda öğreniyorum.

Kısmi

<% if user_admin_or_premium? %> 
    <div class="form-group"> 
    <%= f.label :private, class: 'checkbox' do %> 
     <%= f.check_box :private, :true %> Private Wiki? 
    <% end %> 
    </div> 
<% end %> 

Görünüm

<div class="col-md-8"> 
    <%= form_for @wiki do |f| %> 
    <div class="form-group"> 
     <%= f.label :title %> 
     <%= f.text_field :title, class: 'form-control', placeholder: "Enter Wiki Title" %> 
    </div> 
    <div class="form-group"> 
     <%= f.label :body %> 
     <%= f.text_area :body, rows: 10, class: 'form-control', placeholder: "Enter Wiki Body" %> 
    </div> 
    <%= render "wikis/form", f: f %> 
    <div class="form-group"> 
     <%= f.submit "Save", class: 'btn btn-success' %> 
    </div> 
    <% end %> 
</div> 

Tam Hata

NameError in Wikis#new 

undefined local variable or method `f' 

<% if user_admin_or_premium? %> 
    <div class="form-group"> 
    <%= f.label :private, class: 'checkbox' do %> 
     <%= f.check_box :private, :true %> Private Wiki? 
    <% end %> 
    </div> 

cevap

9

Gözardısenin hale işlevinden 10 tuşu:

<%= render "wikis/form", f: f %>

Kolay düzeltme, ama kesinlikle belli değil, daha önce de aynı konuda kelimler oldum. Yukarıdaki açıklamada aşağıdakilere eşdeğerdir:

<%= render partial: "wikis/form", locals: { f: f } %>

+1

Bu. F'yi kısmi olarak geçirin. –

+0

Hala buna hayır şans. Aynı hata mesajını alıyorum. Orijinal yayının tam hata mesajını gönderdim. Yardım için teşekkürler btw! – Tucker

+0

Yardımlarınızla çalışmasını sağlayın, teşekkürler! – Tucker