2011-03-06 17 views
40

Ruby on Rails 3 kullanıyorum ve :location => ... ve head :ok ifadelerinin ne anlama geldiğini, nasıl çalıştıklarını ve bunları nasıl kullanabileceğimi bilmek istiyorum.`error_to 'biçimindeki ifadede`: location => ... `ve` head: ok` nedir?

respond_to do |format| 
    format.xml { render :xml => @user, :status => :created, :location => @user } 
end 

respond_to do |format| 
    format.xml { head :ok } 
end 

cevap

68
  1. render ... :location => @user

  2. head :ok sets render to return an empty response (so just the header, no body) with status 200.head :okrender nothing: true, status: :ok için kısaltmadır (yani onun URL'dir) yeni oluşturulan kaynağın yeri müşteriye bilgilendirmek HTTP location header ayarlayacaktır.
    Here's a list of all the :status options you can use for setting the appropriate status code.

+3

böylece istemci yeni oluşturulan kullanıcı konumu ile ne yapar? – highBandWidth

+0

@highBandWidth Ne yapmak istiyorlarsa yapın. "Yeni oluşturulmuş bir kaynağın yeri" nin kesin semantiği, uygulamaya bağlıdır. Yukarıdaki örnekte, bu URL, kullanıcı profilini göstermek/düzenlemek için kullanılabilir. – hoha

+0

@hoha Konumu ile birlikte URL'yi kullanıyorum: Tamam, bir parametreye ihtiyacı var. Ama parametrenin değerini tanımsız olarak aldım. id = comment.assignment.id kafa: tamam, konum: assignment_lessons_path (id) Burada bana yardımcı olabilir misiniz? Teşekkürler. :) – Vishal

İlgili konular