2011-09-23 43 views
10

form_for này đã từng làm việc trước khi tôi chuyển ứng dụng của tôi để ray 3,1form_for sai số đối số (3 2) kể từ khi nâng cấp lên đường ray 3.1

<div class="form-box" style="padding-left:1em;"> 
    <% 
    action = @existing_mass.nil? ? "add_to_power_plant": "update_power_plant_substrate"; 
    submit_button_label = @existing_mass.nil? ? 'Add': 'Update'; 
    %> 

    <%= form_for :substrate_mass, @substrate_mass, :remote => true, :url => { :action => action, :substrate_id => @substrate_mass.substrate } do |f| %> 
    <div> 
     <%= f.label :quantity_per_year, "Quantity" %> 
     <%= f.text_field :quantity_per_year, :size => 5, :onclick => 'this.select();', :value => @substrate_mass.quantity_per_year %> 
    </div> 

    <div class="actions" style="float:right;"> 
     <%= f.submit submit_button_label %> 
    </div> 
    <br/> 
    <% end %> 
</div> 

Tôi đã dành hơn 4 giờ cố gắng tìm ra những gì là sai ... có chắc chắn là một cái gì đó tôi không hiểu nữa

tôi nhận được lỗi:

sai số đối số (3 2)

Lưu ý rằng tôi t rying để cập nhật một biến mà không phải là một đối tượng activerecord. Nó chỉ là một đối tượng không được lưu trữ trong cơ sở dữ liệu.

Hy vọng ai đó có thể trợ giúp.

cổ vũ

Trả lời

10

form_for chỉ mất hai đối số, record, và options, mặc dù kỷ lục thể có nhiều thứ, bao gồm một biểu tượng đơn giản, một đối tượng, hoặc một mảng.

Thử chỉ cần thả biểu tượng đầu tiên và gửi đối tượng của bạn. Nếu mô hình của bạn không bao gồm ActiveModel::Naming, bạn có thể đặt tên qua tùy chọn :as.

<%= form_for @substrate_mass, :as => 'substrate_mass', ... %> 

Giúp đỡ thêm có thể được tìm thấy ở đây:
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

Hoặc để xem mã nguồn trực tiếp:
https://github.com/rails/rails/blob/v3.1.0/actionpack/lib/action_view/helpers/form_helper.rb#L353

+0

wahoo này làm việc rất tốt! Tôi rất biết ơn. – zabumba

Các vấn đề liên quan