Raylar: numune için yerli geçirilmesi için sözdizimi hakkında karıştı
Anlayış Raylar "sihirli" işleme parçaları (ve yerliler geçirilmesi) ile ilgili olarak.
Neden bu çalışmıyor:
<%= render "rabbits/form" %>
Ve bu iş:
<%= render "rabbits/form", :parent => @warren, :flash => flash %>
ama bunu yapardeğilçalışma:
<%= render "rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
Ama yapar:
<%= render :partial =>"rabbits/form", :locals => { :parent => @warren, :flash => flash } %>
Ayrıca, nasıl S. O. insanları rahatsız etmek istemiyorum o yüzden bu nüansları bakabilir miyim?
CEVAP
Kısa cevap senin geçtiğin ilk argüman görünüyor render yöntemi. Bir karma olarak geçmek :partial => 'foo', :locals => {blah blah blah}
içerir), daha sonra ise karma olarak argümanlar geçmek ve onları buna göre ayrıştıracak.
Eğer ilk argüman olarak bir dize geçirirseniz, ilk bağımsız değişken kısmi adınızı ve halk olarak kalan geçeceğini varsayar. Ancak, bu sonraki çağrı, aslında atar :locals => your_locals_argument
, Bu durumda tüm :locals => {locals hash}
yerine sadece {locals hash}
; yani sen son yukarıya ile :locals => {:locals => {locals hash}}
yerine :locals => {locals hash}
.
Tavsiyem, her zaman açıkça değerleri aynı şekilde tüm zaman geçirmek için, bir sorun olmaz. Bu konuyu öğrenmek için, koda doğrudan kendisi gittim (/lib/base actionpack.rb, render()
Raylar yöntem 2; Raylar 3 farklı). İyi bir egzersiz.
Ayrıca, "PEKİ." insanları rahatsız merak etme Bu site bu yüzden var. Ben bile bir şeyler öğrendim.
Varsayılan Yüce Metin 2 farklı dosya t...
Neden bu program geçerli mi? Bir sözdi...
Nasıl (dişliler) varlık boru hattı ile...
Raylar Geçiş bir dosyayı geri almak iç...
Nasıl Raylar ile ilgili 4 kullanmak iç...