SORU
9 Aralık 2010, PERŞEMBE


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
9 Aralık 2010, PERŞEMBE


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • Ralph Phillips

    Ralph Philli

    5 Aralık 2006
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009