7

Vì vậy, tôi đang xây dựng một hình thức trong đường ray 3.1, sử dụngray simple_nested_form_for fields_for sai số lập luận

<%= simple_nested_form_for(@person, :url => collection_url, :html=>{:multipart => true}) do |f| %> 
    <%= render :partial => "form", :locals => { :f => f } %> 
<% end %> 

nhưng dòng này trong một phần gây ra vấn đề:

<h2>Badges</h2> 
<ul id="certifications"> 
// this following line is raising the error "wrong number of arguments (4 for 3)" 
<%= f.fields_for :certifications do |certification_form| %> 
    <%= render :partial => 'certification', :locals => { :f => certification_form } %> 
<% end %> 
</ul> 
<%= f.link_to_add "Add a Badge", :certifications %> 

Vì vậy, đây là mô hình:

class Person < ActiveRecord::Base 
    has_many :certifications, :dependent=>:destroy, :order=>:position 
    has_many :certificates, :through=>:certifications 
    accepts_nested_attributes_for :certifications, :allow_destroy => true 
end 

Bộ điều khiển đang sử dụng đá quý tài nguyên kế thừa.

Có vấn đề gì? Cảm ơn đã giúp đỡ.

+0

lỗi là gì? – apneadiving

+1

sai số đối số (4 cho 3), xem đoạn mã thứ hai :) – randomor

Trả lời

7

Tôi đã gặp vấn đề tương tự cho đến khi tôi nhận ra đá quý đã lỗi thời với phiên bản trên git. Tôi chỉ cập nhật các tệp gem một cách thủ công với các tệp tin trên git và vấn đề đã được sửa!

11

imorsi là đúng, đây là cách tôi đã làm nó:

gem "nested_form",: git => 'git: //github.com/ryanb/nested_form.git'

Tôi cũng đã gỡ bỏ và đóng gói lại viên đá quý, nhưng tôi nghi ngờ điều đó là không cần thiết. đừng quên khởi động lại máy chủ của bạn sau khi cài đặt gem.

+0

đã làm điều này, chuyển js sang '/ vendor/assets/javascripts /', đã cập nhật '/ app/assets/javascripts/application.js' để bao gồm '// = yêu cầu nested_form' và sau đó nó hoạt động – ZMorek

-1

Tôi cố gắng đó, nhưng công việc didnt

Vì vậy, tôi đã kết thúc làm "bó nested_form mở" và sao chép dán từ github