Generating Dynamic text box

#Project controller

class ProjectsController < ApplicationController

def index
@projects = Project.find(:all)
end

def new
@project = Project.new
@project.tasks.build
end

def create
@project = Project.new(params[:project])
if @project.save
flash[:notice] = “Successfully created project and tasks.”
redirect_to projects_path
else
render :action => ‘new’
end
end

def edit
@project = Project.find(params[:id])
end

def update
params[:project][:existing_task_attributes] ||= {}

@project = Project.find(params[:id])
if @project.update_attributes(params[:project])
flash[:notice] = “Successfully updated project and tasks.”
redirect_to project_path(@project)
else
render :action => ‘edit’
end
end

end

#Project.rb

class Project < ActiveRecord::Base

has_many :tasks, :dependent => :destroy

validates_presence_of :name
validates_associated :tasks

after_update :save_tasks

def new_task_attributes=(task_attributes)
task_attributes.each do |attributes|
tasks.build(attributes)
end
end

def existing_task_attributes=(task_attributes)
tasks.reject(&:new_record?).each do |task|
attributes = task_attributes[task.id.to_s]
if attributes
task.attributes = attributes
else
tasks.delete(task)
end
end
end

def save_tasks
tasks.each do |task|
task.save(false)
end
end

end

#Project/_task.html.erb

<% @task = task %>
<%= error_messages_for :task %>

<% fields_for_task(task) do |task_form| %>

Task: <%= task_form.text_field :name %> <%= link_to_function "remove", "$(this).up('.task').remove()" %>

<% end %>

#Project/edit.html.erb

<% form_for :project, :url => project_path(@project), :html => { :method
=> ‘put’ } do |f| %>
<%= render :partial => ‘fields’, :locals => { :f => f } %>

<%= submit_tag "Update Project" %>

<% end %>

#Project/_fields.html.erb

<%= error_messages_for :project %>

Name: <%= f.text_field :name %>

<%= render :partial => 'task', :collection => @project.tasks %>

<%= link_to_function('Add') do |page| page.visual_effect :highlight, 'tasks' end%>

#Project/show.html.erb

<%= link_to ‘Edit’, edit_project_path(@project) %> |
<%= link_to ‘Back’, projects_path %>

#projects/new.html.erb

<% form_for :project, :url => projects_path do |f| %>
<%= render :partial => ‘fields’, :locals => { :f => f } %>

<%= submit_tag "Create Project" %>

<% end %>

#project_helper

module ProjectsHelper

def fields_for_task(task, &block)
prefix = task.new_record? ? ‘new’ : ‘existing’
fields_for(“project[#{prefix}_task_attributes][]”, task, &block)
end

def add_task_link(name)
link_to_function name do |page|
page.insert_html :bottom, :tasks, :partial => ‘task’, :object =>
Task.new
end
end

end

#Task.rb

class Task < ActiveRecord::Base

belongs_to :project
validates_presence_of :name

end

What’s your question? Can you express it simply without listing your
entire codebase?