form_for
yardımcısında @product
yardımcıları daha fazla özellik ile birlikte gelir.
:product
yalnızca giriş alanının kimliğini ve adını etkiler.
<%= form_for :product, :url => {...} do |f| %>
<%= f.text_field :price %>
<% end %>
oluşturulan html gibi görünecektir::
<input type="text" id="product_price" name="product[price]" />
id
ve name
değeri :product.to_s
ve metin alanı adına göre belirlenir Örneğin şeklinde açılan bir metin var.
Eğer @product
kullanırsanız url @product
'ın durumuna göre belirlenecek çünkü, :url
gerekli olmasa da: @product
yeni bir rekor ise
- , url
create
yayın ediyorum
- aksi url
update
göndermek istiyorum ve dosyalanmış girişin kimliği ve adı 'ın cl @product
etkilenir eşek adı, bu yüzden tek bir tablo kalıtım kullandığınızda önemlidir. Dosyalanan değerin değeri @product
'un öznitelik değeri ile otomatik olarak atanır.Eğer @product
kullanmak Yani eğer, html çıkış gibi görünecektir:
<input type="text" id="item_price" name="item[price]" value="some value" />
Ve tabii ki kullanabilirsiniz: varsayın
<input type="text" id="product_price" name="product[price]" value="some value" />
@product
'ın sınıf adı daha sonra çıkış için değiştirecek, Item
olduğunu :product
ve @product
her iki:
<%= form_for :product, @product do |f| %>
dosyalanan :product
kontrolleri girişin adı ve kimliği ve @product
, URL ve giriş alanının değerini kontrol eder.
: ürün ayrıca form_for'un ürettiği URL'yi de etkiler. –
Evet, ama asla bir: 'url' atamadan bir sembol argümanı kullanmıyorum. Aslında sembol nadiren yalnız kullanılır. – Kevin
Form_for (: ürün, ...) işlevini kullandığımda '@ product' değerleri ile doldurulmuş metin alanlarını görüyorum. Ancak, seçim kutuları varsayılan değerleri alır (ilk seçenek). Neyin yanlış olabileceği hakkında bir fikrin var mı? Ayrıca bakınız: http://stackoverflow.com/questions/4436267/ruby-on-rails-why-a-select-box-does-not-show-the-current-object-value –