All pastes #981364 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-11 19:02 UTC
rendered paste body
class 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