rendered paste bodyclass UsersController < ApplicationController
# GET /users
# GET /users.xml
def index
@users = User.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
# GET /users/1
# GET /users/1.xml
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/new
# GET /users/new.xml
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/1/edit
def edit
@user = User.find(params[:id])
end
# POST /users
# POST /users.xml
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
flash[:notice] = 'User was successfully created.'
format.html { redirect_to( :controller => :welcome ) }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
flash[:warning] = 'Signup failed'
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# PUT /users/1
# PUT /users/1.xml
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
format.html { redirect_to(@user) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.xml
def destroy
@user = User.find(params[:id])
@user.destroy
respond_to do |format|
format.html { redirect_to(users_url) }
format.xml { head :ok }
end
end
end
<h1>New user</h1>
<%= error_messages_for :user %>
<% if false then %>
<h2>Signups are closed, sorry pal!</h2>
<% else %>
<h1>Signup!</h1>
<% form_for :user do |form| %>
<% form.fieldset 'Account information' do %>
<%= form.text_field :name %>
<%= form.text_field :email %>
<%= form.password_field :password %>
<%= form.password_field :password_confirmation %>
<% end %>
<%= form.submit "Submit" %>
<% end %>
<% end %>
<%= link_to 'Back', users_path %>
module ApplicationHelper
class LabelledFormBuilder < ActionView::Helpers::FormBuilder
include ActionView::Helpers::TextHelper
include ActionView::Helpers::TagHelper
include ActionView::Helpers::FormTagHelper
field_helpers << "select"
(field_helpers - %w(hidden_field check_box)).each do |selector|
src = <<-END_SRC
def #{selector}(field, *args, &proc)
if field.nil?
super(*args)
else
args << { } if '#{selector}' == 'select'
if self.object and (self.object.class.accessible_attributes.nil? or not self.object.class.accessible_attributes.include?(field.to_sym)) and not self.object[field].nil? then
args << { :disabled => true, :class => '#{selector} disabled' }
else
args << { :class => '#{selector}' }
end
"<p><label class='left' for='\#{field}'>" +
"\#{field.to_s.humanize}:</label> " +
super(field, *args) + "</p>"
end
end
END_SRC
class_eval src, __FILE__, __LINE__
end
def check_box(*args, &proc)
if args.length > 1 and args.first.is_a? String
desc = args.shift
end
field = args.shift
args << { :class => 'check_box' }
if self.object and not self.object.class.accessible_attributes.include?(
field.to_sym) and not self.object[field].nil? then
args.last[:class] += ' disabled'
args.last[:disabled] = true
end
desc ||= field.to_s.humanize
"<div id='checkBoxRow'><p>" + super(field, *args) + "<label class='right' for='#{field}'>#{desc}</label></p></div>"
end
def submit(value)
submit_tag value, { :class => 'submit' }
end
def fieldset(legend, &proc)
concat "<fieldset><legend><span>#{legend}</span></legend>", proc.binding
yield
concat "</fieldset>", proc.binding
end
end
end