5

Tôi có mô hình dự án là has_many :tasks. Tôi đã thêm một tài nguyên lồng nhau trong đường ray 3.1 và thử ngay bây giờ với đá quý nested_form để có thể thêm/xóa các tác vụ khi chỉnh sửa dự án.Đường ray 3.1 không hiển thị fields_for từ nested_form

Tôi đã sử dụng nested_form trước trong một ứng dụng Rails3 khác và nó hoạt động tốt, nhưng bây giờ phần fields_for của tôi không hiển thị bất kỳ thứ gì.

Đây là mã của tôi:

#project.rb 
class Project < ActiveRecord::Base 

    attr_accessible :nr, :name, :client_id, :project_status_id, :hidden, :active, :description, :tasks_attributes 


    has_many :tasks, :dependent => :destroy 
    accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true 


end 


#task.rb 
class Task < ActiveRecord::Base 

    belongs_to :project 

end 

#views/projects/_form.html.erb 
<%= simple_nested_form_for @project do |form| %> 

    <%= form.input :nr, :label => 'Nr' %> 
    <%= form.input :name, :label => 'Name' %> 
    <%= form.association :client, :collection => Client.all(:order => 'name'), :prompt => "Choose a Client" %> 
    <%= form.input :description, :label => 'Description' %> 
    <%= form.input :active, :label => 'Active' %> 
    <%= form.input :hidden, :label => 'Hidden' %> 
    <div class="task_fields"> 
    <%= form.fields_for :tasks do |task_form| %> 
     <%= task_form.input :name %> 
     <%= task_form.input :description %> 
     <%= task_form.input :deadline %> 
     <%= task_form.link_to_remove "Remove this task" %> 
     <p><%= form.link_to_add "Add a task", :tasks %></p> 
    <% end %> 
    </div> 
    <div class="actions"> 
    <%= form.button :submit %> 
    </div> 
<% end %> 

và trong tuyến đường của tôi:

resources :posts do 
    resources :comments 
    end 

nhưng khi tôi truy cập trang trong trình duyệt của tôi

<div class="task_fields"></div> 

được trả lại trống rỗng. không có field_for và bất cứ điều gì. nested_form.js được tải và tôi trỏ vào GEMFILE của tôi đến gem "nested_form", :git => 'https://github.com/fxposter/nested_form.git', khi tôi đọc ở đâu đó, tôi cần thực hiện việc này để nhận hỗ trợ simple_form. Tôi cũng đã cố gắng để thay đổi simple_nested_form_for chỉ nested_form_for không có hiệu lực.

Bất kỳ sự giúp đỡ higly đánh giá cao

+0

Từ 'nested_form' thường không hỗ trợ' simple_form', bạn cũng có thể có một cái nhìn tại [kén] (https: // github. com/nathanvda/kén), một viên ngọc mà tôi tạo ra, đó là sự bất khả tri của người tạo hình. – nathanvda

Trả lời

15

Trong projects#new, bạn phải khởi tạo ít nhất một nhiệm vụ khác là một phần fields_for của bạn sẽ không hiển thị bất cứ điều gì.

# projects_controller.rb 
def new 
    @project = Project.new 
    @project.tasks.new 
end 

Nếu bạn muốn nhiều hơn một nhiệm vụ:

n.times { @project.tasks.new } # replace n with the number of tasks needed 
+0

hehe, nhanh quá! nhờ người bạn đời .. – tmaximini

+0

Đó là một người tiết kiệm cuộc sống: D – AnkitG

+1

+1 Có ai có lời giải thích vì sao điều này xảy ra không? Có vẻ kỳ lạ là nó không xuất hiện ... – corbin

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