2009-12-22 32 views
6

Bir denetleyicinin eyleminde (yöntem) birden çok örnek değişkenini ayarlamak, şablondaki sorunlara neden olur, yalnızca ilk örnek değişkeni şablona geçirilmiştir. Şablona birden fazla değişken iletmenin herhangi bir yolu var mı? Teşekkürler! Ve neden, Ruby'nin perspektifinde, şablon bir eylemdeki örnek değişkenlerine erişmeyi sağlıyor? Birden çok örnek değişkenini ayarlamada herhangi bir sorun olmamalıdır.Bir denetleyiciden şablona parametreler nasıl iletilir?

cevap

4

Ayrıca, şunlara bakmak isteyebilirsiniz: yerel oluşturma seçeneği. Hangi bir karma kabul eder ki, anahtarlar şablonunuzdaki yerel değişken adlarıyla eşleşen sembollerdir ve değerler bu yerel değişkenleri ayarlayan değerlerdir.

Örnek:

render "show", :locals => {:user => User.first, :some_other_variable => "Value"} 

ve bu şablon

User ID: <%= user.id %><br> 
Some Other Variable: <%=some_other_variable%> 

üretecek:

User ID: 1<br> 
Some Other Variable: Value 

Birden kontrolörleri arasında partials yeniden kullandığınızda. Yerel değişkenleri: locals seçeneği ile ayarlamak, örnek değişkenlerini kullanmaktan daha basit ve çok daha fazla DRY'dir.

4

Örneğin:

class CarsController < ApplicationController 
    def show 
    @car = Car.find(:first) 

    @category = Category.find(:first) 
    end 
end 

arabalar hem @car ve @Category erişmenize olanak tanır/show.html.erb

bu işleri nedeni yakut özgü bir şey, ama raylar yerleşik bazı büyülü. Rails otomatik olarak, ilgili görünüm için mevcut bir kontrolör eyleminde ayarlanmış herhangi bir örnek değişkenini yapar.

İlgili konular