2016-03-28 6 views
0

Ich bin ein Rails Newbie, heute habe ich ein Problem mit fields_for. Hoffe, dass mir jemand helfen kann. Ich habe ein Modellprojekt:Wie man fields_for anpassen kann

class Project < ActiveRecord::Base 
    validates :project_name, presence: true,uniqueness: true 
    validates :plan_time, presence: true 
    has_many :tasks, dependent: :destroy 
    accepts_nested_attributes_for :tasks, allow_destroy: true 
end 

und ein Modell Aufgabe:

class Task < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :project 
    validates :user_id, presence: true 
    validates :project_id, presence:true 
end 

aber wenn ich ein form_for Projekt gemacht:

<%= form_for(@project, do |f| %> 
    <%= f.fields_for :tasks do |tasks_for_form|%> 
    <%= render 'task_fields', f: tasks_for_form%> 
<%end%> 

... es alle machen die bestehende Aufgabe des Projekts in db. bitte hilf mir!

+0

Bitte geben Sie Ihren Projekt Controller & Task_field teilweise! –

Antwort

1

Das ist was fields_for tut, was erwartest du es zu tun?

Wenn Sie nur die Felder für eine neue Aufgabe wollen, dann müssen Sie pass in a record object dem Bauherrn, zum Beispiel:

<%= f.fields_for :tasks, @project.tasks.new do |tasks_for_form| %> 

Wenn Sie hinzufügen/entfernen möchten Funktionalität, müssen Sie fügen hinzu, dass sich Besuche die cocoon gem, die es so einfach macht.

0

Ich bin mir nicht sicher, ob Sie innerhalb von Teil enden, aber das Ende ist erforderlich, wenn fields_for initiiert hat.

<%= form_for(@project, do |f| %> 
    <%= f.fields_for :tasks do |tasks_for_form|%> 
     <%= render 'task_fields', f: tasks_for_form%> 
    <% end %> 
<% end %>