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

  • David MeShow

    David MeShow

    10 EKİM 2006
  • Dellbear816

    Dellbear816

    4 Mart 2008
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009