create.rjs
page.insert_html :bottom, 'tasks', :partial => 'task', :locals => {:task => @task}
page.['task_form'].reset
_form.html.erb
<% remote_form_for(@task) do |f| %>
Add Task
Name
<%= f.text_field :name %>
Value
<%= f.text_field :value %>
<%= f.submit "Create" %>
<% end %>
task_controller.rb
class TasksController < ApplicationController
# GET /tasks
# GET /tasks.xml
def index
@tasks = Task.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @tasks }
end
end
def list
@tasks = Task.find(:all)
@task = Task.new
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @tasks }
end
end
def highlight
@task = Task.find(params[:id])
end
# GET /tasks/1
# GET /tasks/1.xml
def show
@task = Task.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @task }
end
end
# GET /tasks/new
# GET /tasks/new.xml
def new
@task = Task.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @task }
end
end
# GET /tasks/1/edit
def edit
@task = Task.find(params[:id])
end
# POST /tasks
# POST /tasks.xml
def create
@task = Task.new(params[:task])
respond_to do |format|
if @task.save
flash[:notice] = 'Task was successfully created.'
format.html { redirect_to(@task) }
format.xml { render :xml => @task, :status => :created, :location => @task }
else
format.html { render :action => "new" }
format.xml { render :xml => @task.errors, :status => :unprocessable_entity }
end
end
end
# PUT /tasks/1
# PUT /tasks/1.xml
def update
@task = Task.find(params[:id])
respond_to do |format|
if @task.update_attributes(params[:task])
flash[:notice] = 'Task was successfully updated.'
format.html { redirect_to(@task) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @task.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /tasks/1
# DELETE /tasks/1.xml
def destroy
@task = Task.find(params[:id])
@task.destroy
respond_to do |format|
format.html { redirect_to(tasks_url) }
format.xml { head :ok }
end
end
end
list.html.erb
Tasks
<%= link_to_remote "say hello", :url => hello_tasks_path, :layout => false %> <%= link_to_function "hello (local)", update_page {|page| page.alert "hello, world (local)" } %><%= render :partial => 'task', :collection => @tasks %><%= render :partial => 'form' %>
