я делаю проект, где а «задачи has_many проекта, и задача TASK1, task1 имеет задачу 2 и task2 имеет Task3.»RoR: Вложенные формы модели атрибуты внутри других атрибутов модели
Но им застрял в принятии способ вставить все эти задачи только в одной форме,
им с помощью вложенной формы камень,
Это то, что я thought'd работу.
def task_params
params.require(:task).permit(:projeto_id, :raiz, :descr, :hour, :typo, :tsk1s_attributes => [:raiz, :descr, :hour, :typo, :_destroy, :tsk2s_attributes => [:raiz, :descr, :hour, :typo, :_destroy, :tsk3s_attributes => [:raiz, :descr, :hour, :typo, :_destroy]]])
end
task.erb модель
class Task < ActiveRecord::Base
has_many :tsk1s
belongs_to :projeto
accepts_nested_attributes_for :tsk1s, allow_destroy: true
end
tsk1.erb модель
class Tsk1 < ActiveRecord::Base
belongs_to :task
has_many :tsk2s
accepts_nested_attributes_for :tsk2s, allow_destroy: true
end
же для tsk2.erb, tsk3 только belongs_to
часть моей формы сильфона, это для добавления tsk2, tsk3 - это то же самое и tsk1 тоже.
<%= f.fields_for :tsk2s do |tsk2| %>
<ul class="step">
<li>
<%= tsk2.number_field :raiz, :placeholder => "Identificador" %>
<%= tsk2.text_field :descr, :placeholder => "Descrição" %>
<%= tsk2.number_field :hour, :placeholder => "Carga Horária" %>
<%= tsk2.select("typo", {"Analitica" => "Analitica", "Sintetica" => "Sintetica"}) %>
<%= tsk2.link_to_remove "-" %>
<%= f.link_to_add "+Galho", :tsk3s %> </li>
<% end %>
Это на самом деле только сохраняет задачу и TSK1 атрибуты,
контроллер задачи:
def create
@task = Task.new(task_params)
respond_to do |format|
if @task.save
format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render :show, status: :created, location: @task }
else
format.html { render :new }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
конец
def new
@task = Task.new
конец
полный код формы http://pastebin.com/DSwZGfNs
Пожалуйста, обновите ваш пост с '' new' и create' методов контроллера. А также с полным кодом формы. – Pavan