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

  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • Blu animations and other videos

    Blu animatio

    15 HAZİRAN 2007
  • VJ VIMANA

    VJ VIMANA

    3 Mayıs 2007