2013-01-06 16 views
7

Raylar Kılavuzları görüldüğü gibi yani rehberlik, ben redirect_to yönteme bir örnek değişkeni geçirilmesi konusunda karıştı http://guides.rubyonrails.org/layouts_and_rendering.htmlÖrnek değişkenleri redirect_to yöntemine geçirme hakkında karışıklık. Ben rayların üzerinde yakut okuyorum

kısmındaki "düzenleri ve render" konu. Bu nasıl mümkün olabilir? redirect_to'un başka bir web sayfasına veya bir URL'ye yönlendirmekle ilgili olacağını düşündüm.

2.2.2 Bir Projenin Görünüm

Rendering Eğer içinde farklı bir eyleme tekabül görünümünü oluşturmak istiyorsanız: kılavuzunda verilen örneklerde

aşağıdaki diyor

def update 
    @book = Book.find(params[:id]) 
    if @book.update_attributes(params[:book]) 
    redirect_to(@book) 
    else 
    render "edit" 
    end 
end 
012: aynı şablon, sen bakış adıyla hale kullanabilirsiniz

"Düzenleme" oluşturma işlemi, tam anlamıyla yeni bir biçim oluşturmaya devam eder. Ama dünyada redirect_to(@book) ile neler oluyor? Tam olarak ne işleyecek ve bir kitap nesnesine nasıl yönlendirilecek? BTW, kitap modeli sütunlar, Ad, yazar, sayfaları vb ...

cevap

18

redirect_to documentation

redirect_to (vardır options = {}, response_status = {}) tarayıcısını seçeneklerde belirtilen hedefe yönlendirir. Kayıt - URL, url_for numaralı telefonu arayarak, kaydının adlandırılmış URL'sine başvuracak seçenekler kullanılarak üretilecektir. biri redirect_to(@book) yaptığında

Yani @book bir id ile belirli bir kayıttır. Bu nedenle, ilgili kayıtlar (bu örnekte @book) gösterme yöntemini şablon olarak kullanır. Bu yol tanımlanıyor routes.rb dosyanın bakarsak

Yukarıdakilere ek olarak

, sen

resources :books 

Şimdi bu rota esasen

books GET /books(.:format)     books#index 
      POST /books(.:format)     books#create 
new_book GET /books/new(.:format)    books#new 
edit_book GET /books/:id/edit(.:format)   books#edit 
    book GET /books/:id(.:format)    books#show 
      PUT /books/:id(.:format)    books#update 
      DELETE /books/:id(.:format)    books#destroy 
(eğer rake routes çalıştırarak görebilir) olarak çevrilmiştir göreceksiniz

book GET /books/:id books#show - redirect_to(@book)

+0

Mükemmel. Çok teşekkür ederim! Kristal berraklığında! –

+0

Bunun için teşekkürler! benim için temizledim –

0

Bu örneğin bir kitaba yönlendireceğiz "/ kitaplar/65"

+0

Yaptığınız zaman eşleşeceklerine dikkat edin. URL,/myapp/books/65 ve 65 olduğunu belirtir param karma yoluyla geçer, tam olarak ne redirect_to (@book). Bu kitap 65 için ayrıntıları gösteren bir sayfaya götürecek? Ayrıca, parazitleri olan bir param hastası hakkında ne dersiniz? [: Kitap] .. Bu nedir? Tüm kayıtları içeren bir form gönderme yöntemi? –

İlgili konular