2012-02-14 13 views
14

Bir form_for içinde bir hidden_field yerleştirme girişimi bir ActionView yardımcı hatası üzerinde salatalık içinde çöküyor. Kaynak kodundan kazmadığımdan beri beni kaçan FixNum hakkında bir şeyler. Benim prices_controller bunu gösterir:Rails3 form_for hidden_field undefined yöntemi 'birleştirme'

@price = Price.new 
    @commodity = Commodity.find(params[:id]) 

Bu hidden_field ile fiyat ve emtia arasındaki bağlantıyı yapmak istiyorum:

<%= form_for (@price), :url => prices_path do |f| %> 
    <% f.hidden_field :commodity_id, @commodity.id %> 
. 
. 
<div class="actions"> 
<%= f.submit "Submit" %> 
    </div> 

form_for API baktım ve yukarıda çalışmalıdır. Stackoveflow'taki diğer yanıtları okuyarak, hidden_field'i formdaki kendi div'üne koydum, bir Hidden_field_tag ​​ekledim ve submit satırından önce eylemler div'una yerleştirdim. Birleştirme msg baktığımda, hat hakkında bir şey sevmiyor sanırım, ama bana Tamam görünüyor. Commodity_id alanı, eşleşme alanı olan sam

cevap

24

Hata mesajının kendisini ve izin ilgili satırlarını yapıştırırsanız, bize yardımcı olabilir. Şu anda gördüğüm tek şey, f.hidden_field'dan önceki ERB etiketinin <%= olması ve ERB'yi kullanmadığımdan emin değilim. Değer ne olursa olsun, birleştirme genellikle Hash nesnelerle kullanılır. Belki de size doğru yönde işaret edebilirim.

EDIT Tamam. f.hidden_field :commodity_id, :value => @commodity.id yazmalısınız.

+0

undefined method 111 için "birleştirme": Fixnum (ActionView :: Şablon :: Hata) /Users/sam/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.1.3/lib/ action_view/helpers/form_helper.rb: 1348: 'objectify_options' /Users/sam/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.1.3/lib/action_view/helpers/form_helper.rb : 1301: "hidden_field" 'da ve bunu denemek için "=" yi erb diline ekledim. Başarısız gibi görünüyor. Teşekkürler. – sam452

+0

İşte hata msg için daha fazla. Daha fazla yayınlamalı mıyım? – sam452

+0

Sanırım anladım - güncellenmiş mesajı gör – ksol