datamapper / dm-core

DataMapper - Core
http://datamapper.org/
MIT License
754 stars 153 forks source link

Datamapper fails to save to sqlite db #210

Open schilton opened 12 years ago

schilton commented 12 years ago

Datamapper correctly creates the database in sqlite, but fails to persist an object to its table. The form returns the values and properly assigns them to the object, but the call to save the object fails. How do you determine why it failed so that I can correct the problem? I am a newbie to Ruby, Sinatra, Datamapper and Sqlite and any assistance would be greatly appreciated.

Here is the Ruby code savetest.rb :

require 'rubygems' require 'i18n' require 'sinatra' require 'data_mapper' require 'bcrypt'

enable :sessions

DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/savetest.db")

in config/initializer/locale.rb

tell the I18n library where to find your translations

I18n.load_path << Dir[File.join('config', 'locales','*.{rb,yml}') ]

class Entity

include DataMapper::Resource

property :entity_id, Serial property :full_legal_name, String property :tax_id, String property :phone_number, String property :fax_number, String property :cell_number, String property :email, String, :unique => true, :format => :email_address property :alt_email, String property :is_active, Boolean property :created_at, DateTime property :created_by, String property :updated_at, DateTime property :updated_by, String property :auto_pay, Boolean property :use_ach, Boolean property :prefix, String property :first_name, String property :middle_name, String property :last_name, String property :suffix, String property :referal_code, String property :login_name, String, :unique => true property :hashed_password, String property :salt, String property :permission_level, Integer property :title, String property :greeting, String property :preferred_name, String property :preferred_language, String property :security_question, String property :security_answer, String property :signature_font, String

has n, :addresses, :through => Resource has n, :aches has n, :creditcards

end

class Person < Entity

property :birthdate, Date property :drivers_license_number, String property :state_issuing_drivers_license, String

end

class Company < Entity

property :dba_name, String property :legal_structure, String property :url, String, :format => :url

end

class Address

include DataMapper::Resource

property :address_id, Serial property :esid, String property :description, String property :address_line1, String property :address_line2, String property :city, String property :state, String property :zipcode, String property :country, String property :meter_number, String property :meter_type, String property :meter_status, String property :meter_status_date, DateTime property :updated_by, String property :switch_indicator, String property :switch_type, String property :selected_switch_date, Date property :under_contract, Boolean property :contract_end_date, Date

has n, :entities, :through => Resource

end

class Ach

include DataMapper::Resource

property :ach_id, Serial property :bank_account_owner, String property :bank_name, String property :routing_number, String property :bank_account_number, String property :ach_authorization, Boolean

belongs_to :entity, :required => false

end

class Creditcard

include DataMapper::Resource

property :credit_card_id, Serial property :type_of_card, String property :card_number, String property :expiration_date, Date property :security_code, String property :cardholder_name, String property :credit_card_billing_address_line1, String property :credit_card_billing_address_line2, String property :credit_card_billing_city, String property :credit_card_billing_state, String property :credit_card_billing_zipcode, String property :credit_card_authorization, Boolean

belongs_to :entity, :required => false

end

DataMapper.finalize

Create or upgrade all tables at once

DataMapper.auto_upgrade!

before do

set utf-8 for outgoing

headers "Content-Type" => "text/html; charset=utf-8"

set the locale manually - this will be replaced with code to extract it from the subdomain

I18n.locale = :en end

get '/' do redirect "/residential/signup" end

get '/residential/signup' do @title = I18n.t('residential_signup_title') erb :residential_signup end

post '/residential/signup' do @title = "Residential Signup" @home_menu = "home" @ce_logo = "../assets/images/ceLogo.png"
@lgraphic = "../assets/images/TmpResidentialGraphic.png" @international_gif = "../assets/images/international.gif" @page_content = "The data collected is:

"

@person = Person.new()

params[:post].each { |key, value| @person[key] = value }

@test = params[:post][:prefix] + " " + params[:post][:first_name] + " " + params[:post][:middle_name] + " " + params[:post][:last_name] + " " + params[:post][:suffix] @person.full_legal_name = @test

if @person.save == false @sub = "The save failed!" else @sub = "The save succeeded!" end

session[:foo] = @person

session[:base_route] = "residential"

if params[:post][:submit] == I18n.t('privacy_policy_label') redirect "/privacy_policy" elsif params[:post][:submit] == I18n.t('cancel_btn_label') redirect "/residential" else @page_content = "The data collected is:

" + "
" + @sub erb :index end end

Here is the view for the form residential_signup.erb :

<%= I18n.t('residential_signup_title') %>











<%= I18n.t('privacy_policy_review_caption') %>







Here is the view for the display index.erb : ``` ``` Here is the layout view layout.erb : <%= @title %> <%= yield %> Here is the CSS for main.css : /* Document : main Created on : Sep 21, 2010, 11:36:02 AM Author : cellp Description: Purpose of the stylesheet follows. */ /* TODO customize this sample style Syntax recommendation http://www.w3.org/TR/REC-CSS2/ */ root { display: block; } body { font: 1em Verdana, Arial, Helvetica, sans-serif; /\* 1em = 16pts _/ background: #ABA99F; margin: 0; /_ it's good practice to zero the margin and padding of the body element to account for differing browser defaults _/ padding: 0; text-align: center; /_ this centers the container in IE 5\* browsers. The text is then set to the left aligned default in the #container selector _/ color: #000000; } .float_left {float:left; margin: 0 .3em .3em 0;} /_ apply this class to any image or element with width - text will wrap it to the right _/ .float_right {float:right; margin: 0 0 .3em .3em;} /_ apply this class to any image or element with width - text will wrap it to the left */ h1, h2, h3, h4, h5, h6, ul, ol, dl { font-family: 'Trebuchet MS', Verdana, serif; } /\* FONT SIZES FOR HEADINGS_/ h1 {font-size:2em; /_ 24pt _/ } h2 {font-size:1.5em; /_ 22pt _/ line-height:1.25; padding: 0 0 0 0; } h3 { font-size:1.125em; line-height: 1.5; } h4 {font-size:1em; /_ 18pt _/ } h5 {font-size:1em; /_ 16pt _/ } h6 {font-size:.875em; /_ 14pt */ } /\* my default styling of other XHTML elements */ p {font-size:1em;} code {font-size:1.25em;} - html code {font-size:1.1em;} /\* b/c default size is larger in IE */ cite { font-size:.85em; font-style:italic; } blockquote { width:30%; font-size:.7em; margin:0 0 1em 1em; padding:.3em .4em; border-top:2px solid; border-bottom:2px solid; } blockquote cite { font-size:0.85em; display: block; } abbr, acronym { border-bottom:1px dashed #000; cursor:default; } address { margin:0 1em .75em 1em; } img { border:0; } a:hover { text-decoration:none; } a.active { background: #F03; } .clear { clear:both; height: 0; /\* only necessary for IE */ margin: 0; padding: 0; } /\* styles specific to LiveValidation */ fieldset { display: inline-block; padding: 30px 10px 0px 10px; border:0; position:relative; padding:10px; margin:10px; } /_label { display:block; font:normal 12px/17px verdana; }_/ span.hint { font:normal 11px/14px verdana; background:#eee url("../_assets/_images/bg-span-hint-gray.gif") no-repeat top left; border:1px solid #888; padding:5px 5px 5px 40px; width:250px; z-index:100; position:absolute; margin: 1em 0px 0px 0px; display:none; } .welldone span.hint { font:normal 11px/14px verdana; background:#9fd680 url("../_assets/_images/bg-span-hint-welldone.jpg") no-repeat top left; border-color:#749e5c; color:#000; } .kindagood span.hint { background:#ffffcc url("../_assets/_images/bg-span-hint-kindagood.jpg") no-repeat top left; border-color:#cc9933; } .welldone { background:transparent url("../_assets/_images/bg-fieldset-welldone.gif") no-repeat 300px bottom ; } .kindagood { background:transparent url("../_assets/_images/bg-fieldset-kindagood.gif") no-repeat right center ; } # formRightColumn { ``` width: 40%; float: right; margin: 15px 45px 10px 0px; ``` /\* background: #ff6666; This is for development only */ } input[name="emailAddress"] { ``` width: 250px; margin-right: 50px; ``` } /\* styles specific to this design */ # container { ``` background: #FFFFFF; /* This should be #FFFFFF for production */ margin: 25px auto 0px; /* this overrides the text-align: center on the body element. */ width: 950px; border-style: double; border-color: #666; overflow: visible; text-align: left; padding: 0px; height: 600px; ``` } # loginContainer { ``` background: #FFFFFF; /* This should be #FFFFFF for production */ margin: 220px auto 0px; /* this overrides the text-align: center on the body element. */ width: 280px; -moz-border-radius: 15px; -moz-box-shadow: 3px 3px 4px #666; -webkit-box-shadow: 5px 5px 6px #666; box-shadow: 3px 3px 4px #666; /* For IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; /* For IE 5.5 - 7 */ filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; border-radius: 15px; border-width: medium; border-color: #675845; display:block; text-align: left; padding: 0px; height: 190px; position: relative; ``` } .loginField { padding: 15px 0px 0px 20px; width: 200px; color: #675845; float: left; } # loginButton input{ ``` float: left; margin-top: -20px; margin-left: 200px; color: #675845; font-weight: bold; ``` } # forgotPassword { ``` clear: both; color: #E48254; opacity:0.9; /* CSS3 - range 0 to 1 */ -moz-opacity:0.7; /* Firefox - range 0 to 1 */ filter:alpha(opacity=90); /* IE - range 0 to 100 */ font-size: .8em; display: block; padding-left: 20px; ``` } # rememberMe { ``` margin: 25px 0px 0px 20px; ``` } .rememberMe { color: #675845; font-size: .8em; display: inline; padding-left: 5px; } # errorContainer { ``` background: #FFFFFF; /* This should be #FFFFFF for production */ margin: 220px auto 0px; /* this overrides the text-align: center on the body element. */ width: 400px; -moz-border-radius: 15px; -moz-box-shadow: 3px 3px 4px #666; -webkit-box-shadow: 5px 5px 6px #666; box-shadow: 3px 3px 4px #666; /* For IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; /* For IE 5.5 - 7 */ filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; border-radius: 15px; border-width: medium; border-color: #675845; display:block; text-align: left; padding: 20px; height: auto; position: relative; ``` } .errorCode { margin: 0px; text-align: center; padding-bottom: 20px; color: #993300; } # errorContainer h3 { ``` margin: 0px; padding: 20px 0px 0px 0px; text-align: center; color: #675845; ``` } # errorContainer p { ``` margin: 0px; padding: 0px; text-align: center; color: #675845; ``` } # errorContainer h5 { ``` margin: 0px; padding-top: 20px; text-align: center; color: #675845; ``` } # globalHeader { ``` height: 100px; position: absolute; margin-right: 20px; margin-left: 20px; width: 950px; z-index: 100; ``` } .signupFormHeader { width: 950px; position: absolute; font-style: normal; font-size: 3.5em; color: #675845; text-align: center; z-index: 100; margin: 15px auto 0px auto; padding: 0px; } # globalHeaderLogo { ``` padding-top: 12px; display: block; float: left; height: 88px; ``` } # globalHeader h3 { ``` font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; font-style: normal; font-variant: small-caps; color: #B9B8AF; margin: 40px 0px 0px 230px ``` } .headerNav \* { margin: 0px; padding: 0px; } .headerNav { font-family: Arial, Helvetica, sans-serif; font-size: 0.8em; background: transparent; margin: 14px 60px 0px 0px; float: right; padding: 0em; position: relative; } .headerNav ul { display: inline; border-left: 0px solid #B9B8AF; font-size: 1em; margin: 0px; } .headerNav.transparent ul li a { position: relative; top: -2px; } .headerNav.transparent ul li a.home { background: url(../assets/images/homeButton.png) no-repeat left top; padding-top: 10px; padding-right: 18px; padding-bottom: 10px; top: -4px; } .headerNav.transparent ul li a.home:hover { background: url(../assets/images/homeButton.png) no-repeat 0px -20px; padding-top: 10px; padding-right: 18px; padding-bottom: 10px; } .headerNav.transparent ul li.home { visibility: visible; cursor: default; } .headerNav.transparent ul li.none { visibility: hidden; cursor: default; } .headerNav li { border-right: 0px solid #B9B8AF; float: left; list-style: none; position: relative; background: transparent; display: inline; } .headerNav li p { display: inline; float: left; position: relative; } .headerNav a { background: #FFF; text-decoration: none; display: block; padding: .2em 5px; color: #E48254; } .headerNav a:hover { color: #675845; text-decoration: underline; } .headerNav ul li ul { width: 5em; margin: 0px; border-width: 0px; position: absolute; display: none; padding: 0px; } .headerNav ul li:hover ul { display: block; z-index: 1000; } .headerNav ul li ul li { padding: 0px; width: 100%; border-right-width: 0px; border-left-width: 0px; margin-left: 15px; } .headerNav li li { background: #E0E7C9; border-bottom: 0px solid #B9B8AF; } .headerNav.transparent ul ul li { /\* The lower the value, the greater the transparency _/ opacity:0.9; /_ CSS3 - range 0 to 1 _/ -moz-opacity:0.9; /_ Firefox - range 0 to 1 _/ filter:alpha(opacity=90); /_ IE - range 0 to 100 */ } .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } # content { ``` padding: 0px; /* remember that padding is the space inside the div box and margin is the space outside the div box */ background: #F9F9F9; width: auto; height: 450px; border: medium inset #B9B8AF; margin-top: 100px; margin-right: 20px; margin-left: 20px; margin-bottom: 0px; overflow: hidden; color: #675845; ``` } # primaryGraphic { ``` display: block; float: left; height: 446px; padding: 2px; ``` } # primaryText { ``` float: right; height: 430px; display: block; overflow: auto; width: 475px; padding: 10px 20px 10px 10px; ``` } # formLeftColumn { ``` width: 50%; float: left; margin: 15px 0px 10px 45px; ``` /\* background: #ffff99; This is for development only _/ } .fieldContainer { display: block; float: left; padding: 10px 10px 0px 10px; /_ position:relative; This prevents tooltips from working. See if you really need it. */ } # privacyPolicyInstructions { ``` display: block; float: left; ``` } # privacyPolicyInstructions p{ ``` width: 300px; padding-left: 10px; font-size: .8em; cursor: default; ``` } .commercialInstructions{ padding-top: 20px; } .residentialInstructions{ padding-top: 25%; } .saveButton { display: block; float: left; margin-top: -.75em; margin-left: 40%; padding-top: 20px; width: 100%; } .saveButton input { color: #669966; } .saveButton input:hover { color: #993300; text-decoration: underline; cursor: pointer; } # globalFooter { ``` color: #CCC; padding: 0px; font-size: 0.65em; margin: 0px 20px; position: relative; ``` /\* background: #66cccc; This is for testing purposes - teal */ } # globalFooter_Left { ``` display: block; float: left; text-align: left; margin: 0px; padding: 0px; ``` } # globalFooter_Center { ``` float: left; color: #666; display: block; padding-left: 19%; ``` } # globalFooter_Center a { ``` display: block; float: left; padding-top: 10px; color: #333; text-decoration: none; ``` } # globalFooter_Center a:hover { ``` color: #000; text-decoration: underline; ``` } # globalFooter_Center p { ``` display: block; float: left; padding-right: 10px; padding-left: 10px; ``` } # globalFooter_Right { ``` display: block; padding-top: 10px; float: right; position: relative; width: 50px; padding-right: 0px; ``` } .footerNav \* { margin: 0px; padding: 0px; } .footerNav { font-family: Arial, Helvetica, sans-serif; font-size: 0.8em; background: transparent; margin: 0px; float: left; padding: 0em; position: relative; } .footerNav ul { display: inline; border-left: 0px solid #B9B8AF; font-size: 1em; float: left; margin: 0px; } .footerNav li { border-right: 0px solid #B9B8AF; float: left; list-style: none; position: relative; background: transparent; display: inline; } .footerNav a { background: #FFF; text-decoration: none; display: block; padding: .2em 5px; color: #E48254; } .footerNav a:hover { color: #675845; text-decoration: underline; } .footerNav ul li ul { width: 5em; margin: 0px; border-width: 0px; position: absolute; display: none; padding: 0px; } .footerNav ul li:hover ul { display: block; z-index: 1000; } .footerNav.transparent ul ul li { /\* The lower the value, the greater the transparency _/ opacity:0.9; /_ CSS3 - range 0 to 1 _/ -moz-opacity:0.9; /_ Firefox - range 0 to 1 _/ filter:alpha(opacity=90); /_ IE - range 0 to 100 */ } a.current , a.current:hover, a.current:active { color: #478EB0; background: #FFF; cursor: default; text-decoration: none; } # globalFooter_Center a.current, #globalFooter_Center a.current:hover, #globalFooter_Center a.current:active { ``` color: #478EB0; background: #FFF; cursor: default; text-decoration: none; ``` } # signupFooter a.current, #signupFooter a.current:hover, #signupFooter a.current:active { ``` background: #FFF; cursor: default; text-decoration: none; ``` } # signupFooter { ``` color: #CCC; padding: 0px; margin-left: 90px; margin-top: 1.3em; ``` } # signupFooter input { ``` display: block; float: left; padding: 3px 10px; color: #E48254; font-weight: bold; text-decoration: none; ``` } # signupFooter input:hover { ``` color: #993300; text-decoration: underline; cursor: pointer; ``` } # signupFooter p { ``` display: block; float: left; padding: 4px 30px; margin: 0px; cursor: default; ``` } # privacyPolicyButton { ``` display: block; float: left; padding-right: 165px; ``` } # privacyPolicyButton input { ``` color: #675845; ``` } # goBackButton { ``` padding-left: 245px; ``` } # formColumnFour{ ``` margin-left: 15px; margin-top: 3em; width: 190%; height: 85px; ``` /\* background: #ffff99;*/ padding-left: 10px; overflow: auto; border: medium ridge #B9B8AF; font-size: .8em; } .esidOptions{ font-size: .75em; } # searchEsidButton { ``` margin-top: 20px; display: block; float: right; color: #675845; ``` } # searchEsidButton:hover { ``` color: #993300; text-decoration: underline; cursor: pointer; ``` } .selectedSwitchDateContainer { display: block; float: left; padding: 15px 0px 0px 5px; } .contractDate{ margin-top: -10px; } [name="creditCardAuthorization"] { display: block; position: relative; } # checkboxInstructions { ``` display: block; float: left; padding-left: 30px; ``` } # checkboxInstructions p{ ``` display: block; float: left; width: 300px; font-size: .8em; margin-top: -1.5em; ``` } # checkboxInstructions p.achInstructions { ``` width: 350px; ``` } .sameBillingAddressInstructions{ padding-top: 0px; } .radioButtonInstructions{ font-size: .8em; } .radioButton { margin-top: 10px; } .radioButtonLabel { margin: 10px 20px 0px 5px; } .infoContainer { display: block; float: left; } # formCenterColumn { ``` width: 40%; margin: 15px auto 10px 30%; ``` /\* background: #ff6666; This is for development only */ } # formCenterColumn.ach { ``` margin-top: 0px; ``` } # formColumnTwo div.fieldContainer a img,#formColumnThree div.fieldContainer a img,#formColumnThree div.compactFieldContainer a img,#formLeftColumn div.fieldContainer a img, #formRightColumn div.fieldContainer a img, #formCenterColumn div.fieldContainer a img { ``` display:block; float: right; padding: 0px; ``` } # formColumnTwo { ``` width: 33%; float: left; height: 410px; overflow: hidden; ``` /\* background: #ffff99; This is for development only ; Note that I changed the height from 350 to 41v0 for Ruby test*/ } # formColumnThree { ``` width: 37%; float: left; ``` /\* background: #ff6666; This is for development only */ } .compactFieldContainer { display: block; float: left; padding: 10px 10px 0px 10px; } # formColumnOne { ``` width: 29%; height: 350px; float: left; ``` /\* background: #ffff99; This is for development only */ } # formColumnOne ul { ``` display: block; list-style-type: disc; margin: 0px; ``` } ul.addItem { list-style-image: url('../_assets/_images/add.png'); } /\* Service Location CSS */ # serviceLocationContainer { ``` width: 95%; height: 280px; overflow: auto; margin-top: .5em; ``` } ul.addItem li:hover { color: #669966; text-decoration: underline; cursor: pointer; } [placeholder = "###-###-####"], [placeholder = "### - ## - ####"], [placeholder = "#####-####"] { color: #675845; } # serviceLocationsLabel { ``` margin-top: 10px; margin-left: 15px; text-align: center; ``` } .thinkingContainer { display: block; float: left; padding: 36px 0px 0px 0px; } .hideField { display: none; } .showField { display: block; } # loginErrorMsg { ``` margin: -130px auto 0px; /* this overrides the text-align: center on the body element. */ width: 280px; position: absolute; text-align: center; ``` } # loginErrorMsg h2 { ``` color:#993300; ``` } # loginBlockedMsg { ``` text-align:justify; padding: 0px 20px 0px 20px; ``` } # loginBlockedMsg h2 { ``` text-align: center; color:#993300; position: relative; padding-top: 15px; ``` } # cancelLoginContainer { ``` background: #FFFFFF; /* This should be #FFFFFF for production */ margin: 220px auto 0px; /* this overrides the text-align: center on the body element. */ width: 280px; -moz-border-radius: 15px; -moz-box-shadow: 3px 3px 4px #666; -webkit-box-shadow: 5px 5px 6px #666; box-shadow: 3px 3px 4px #666; /* For IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; /* For IE 5.5 - 7 */ filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#666666')"; border-radius: 15px; border-width: medium; border-color: #675845; display:block; text-align: left; padding: 0px; height: 210px; position: relative; color: #675845; ``` } .cancelLogin { display: block; float: left; margin-left: 40%; width: 100%; } .cancelLogin input { color: #993300; } .cancelLogin input:hover { color: #675845; text-decoration: underline; cursor: pointer; } input.deleteIcon { float: left; padding-left: 15px; padding-top: .8em; } p.deleteItem { font-size: .8em; padding-left: 5px; } ul.deleteItem li:hover { color: #993300; text-decoration: underline; cursor: pointer; } # locationItem { ``` width: 85%; margin-left: 35px; ``` } # locationItem:hover { ``` background-color: #fff; ``` } # locationItem.loc_sel { ``` background-color: #cccc99; ``` } # locationItem p a { ``` text-decoration: none; color: #675845; ``` } # locationItem p a:hover { ``` text-decoration: none; color: #993300; ``` } # esidSelectionInstructions { ``` position: absolute; margin-top: -3em; width: 500px; ``` } /\* Tooltip CSS */ .tip {font:1em Arial,Helvetica,sans-serif; font-weight: normal; border:solid 1px #666666; width:250px; padding:1px; position:absolute; z-index:100; visibility:hidden; color:#FFF; top:20px; left:90px; background-color:#675845; border-radius: 15px; /\* opacity:0.8; CSS3 - range 0 to 1 -moz-opacity:0.9; Firefox - range 0 to 1 filter:alpha(opacity=90); IE - range 0 to 100 */ } # t1 {width:130px;} # t2 {margin: -1em 0px 0px 100px;} # t3 {width:264px;} # t4 {width:250px; padding: 10px;} # t5 {width:250px; padding: 10px; left:150px;} # t6 {width:230px; text-align: center;} /*#t1 {width:130px;} # t2 {width:480px;} # t3 {font:bold 14pt verdana,arial,sans-serif; background-color:#ffcccc; layer-background-color:#ffcccc;}*/ /\* dialog box */ # dialogBox { /\* display: none;*/ z-index: 999; position: fixed; background-color: #BF6A30; border-radius: 15px; overflow: hidden; margin: 0px auto; } .dialogContent { background-color: #eee; border-width: 4px; border-color: #BF6A30; border-style: solid; border-radius: 15px; padding: 0px 8px 4px 8px; width: 350px; ``` } p.dialogText { text-align: justify; } .dialogButtons { text-align: center; } .dialogButtons input{ margin: -4px 5px 8px 5px; cursor: pointer; } .dialogButtons input:hover{ color: #BF6A30; } /* title bar */ .dialogTitlebar { text-align: right; font-size: 10px; font-weight: bold; padding: 4px; margin-top: 4px; margin-right:4px; } /* close button in title bar */ .dialogTitlebar span { padding: 2px 4px; background-color: #6A93D4; color: white; border-radius: 15px; cursor: pointer; } /* close button in title bar */ .dialogTitlebar span:hover { color: #BF6A30; } ``` /\* shaded div */ # dialogShade { ``` z-index: 998; display: none; position: absolute; background-color: black; width: 100%; height: 100%; ``` } /\* CSS for Security Information */ # esidSelectionInstructions { ``` position: absolute; margin-top: -30px; width: 500px; ``` } .errorMsg { position: absolute; margin-left: -225px; margin-top: 2em; font-size: .8em; color: #993300; } .dualFieldContainer { clear: both; display: Block; width: 100% } .leftFieldContainer { padding-left: 10px; padding-top: 20px; float: left; } .rightFieldContainer { padding-top: 20px; ``` margin-left: 35%; ``` } # formCenterColumn.securityInfo { ``` width: 100%; margin: 15px auto 10px 20%; ``` } .userIdInstructions { width: 250px; padding-bottom: 0px; margin-bottom: 0px; } # signatureStyleContainer { ``` clear: both; padding: 20px 0px 0px 10px; ``` } .styleOption { display: block; float: left; width: 300px; padding-top: 15px; } # s1l {font-family: "Brush Script MT"; font-size: 1.5em; } # s2l {font-family: "Edwardian Script ITC"; font-size: 1.5em;} # s3l {font-family: "Lucida Calligraphy"; font-size: 1.5em; } # s4l {font-family: "Lucida Handwriting"; font-size: 1.5em; } # s5l {font-family: "Mistral"; font-size: 1.5em; } # s6l {font-family: "Comic Sans MS"; font-size: 1.5em; } # permissionsContainer { ``` width: 360px; height: 330px; overflow: auto; margin: 10px 0px 0px 10px; ``` } # permissionsContainer input { ``` float: left; cursor: pointer; ``` } .authLabel { display: block; padding-left: 30px; width: 300px; font-size: .75em; } .authLabel:hover { cursor: pointer; } # digitalSignature{ ``` position: absolute; margin: 30px 0px 0px 10px; ``` } # dsl1 { ``` position: absolute; margin: 10px 0px 0px 10px; ``` } # dateSigned{ ``` position: absolute; margin: 30px 0px 0px 260px; ``` } # dsl2 { ``` position: absolute; margin: 10px 0px 0px 260px; ``` } # dsl3 { ``` position: absolute; margin: 40px 0px 0px 10px; ``` } # signatoryTitle{ ``` position: absolute; margin: 60px 0px 0px 10px; ``` } Here is the i18N resource en.yml : en: hello: "Hello world!" ``` home_tagline: get plugged into savings #Returns the user to the home page menu_i1: Home #Menu options for commercial customers menu_i2: Commercial #Menu options for residential customers menu_i3: Residencial #Takes the user to the contact page menu_i4: Contact #Takes the user to the login screen menu_i5: Login #This takes the user to the information page for the item. menu_c1: Info #This takes the user to the information page for the item. menu_c2: Pricing #This takes the user to the sign-up servlet for the item. menu_c3: Sign-Up company_name: Community Energy, L.P. #This takes the user to the privacy policy privacy_policy_label: Privacy Policy #This takes the user to the terms of use terms_of_use_label: Terms of Use #Retention of all copyright privileges all_rights_reserved: All Rights Reserved copyright: © 2003-2012 Community Energy, L.P. company_address: 1920 South College Avenue company_city_state_zip: Tyler, TX 75701 aggregation_license: PUCT Registration 80128 #Privacy policy text privacy_policy:

Privacy Policy

Your use of the Community Energy, L.P. ("Community Energy") Web Site, whether as a Community Energy Customer or as any other user of the Community Energy Web Site ("Web Site" or "Site"), is governed by the Terms of Use, and by your use of the Web Site, you accept this privacy policy.

1. What Personal Information We Collect
You are not required to register or provide information to us in order to view much of our Web Site. You will be required to provide information that can be used to identify you (your "Personal Information") when you utilize the Request a Quote process or register as a Community Energy Customer ("Customer") by utilizing the Sign-up Now process. Likewise, when you or another person signs onto the Web Site as a Customer, Community Energy will collect certain Personal Information. This information may include, but is not limited to, your name, address, telephone number, e-mail address, credit card number, login id, password, electricity usage data and certain other related information. Also, when you visit the Web Site, we may place a "cookie," a text file containing a randomly assigned number, on your computer so that we can customize the look and feel of the Web Site for you. If you register as a Customer, this cookie may also contain your login id and password to ease your access to and use of the Web Site. You are always free to decline our cookies if your browser permits, although doing so may impede your use of certain features. If you choose to reject the use of cookies, you will not be able to Request a Quote online or use the Sign-up Now process. However, you may contact a Customer Service Representative at (800) 820-2423, who will assist you with these processes over the phone.

2. How We Use Your Personal Information
To be specific, we may use your Personal Information in the following ways
(a) to fulfill our obligations to our Customers under the Electricity Aggregation Agreement;
(b) to monitor our Customers' accounts in order to enhance the products and services that we currently or will, in the future, offer;
(c) to accommodate your requests and facilitate providing your services;
(d) to send you offers and related information about other goods or services offered by us or our business partners;
(e) to send you material about topics on which you have requested more information;
(f) to provide you with technical and other support; and
(g) to customize the look and feel of the Site for you.
While we may use information about our Customers on an aggregated basis and will often share such data with unaffiliated third parties, this information, by its aggregate nature, contains none of your Personal Information. When we refer to an "unaffiliated" third party, we mean one that (i) is not controlled by us, (ii) does not control us, and (iii) is not controlled by the same party controlling us.

3. When We Disclose Your Personal Information
Except as explicitly stated in this privacy policy, we will not disclose to unaffiliated third parties any of your Personal Information without first obtaining your consent. We do and will continue to disclose your Personal Information to unaffiliated third parties in the following circumstances
(a) if required by law, regulatory or court order, or legal process;
(b) to the Public Utility Commission, if the information is requested for regulatory oversight purposes, or to investigate or resolve Customer complaints;
(c) to an aggregator engaged to collect an overdue or unpaid amount from the customer or to perform any duties of the aggregator;
(d) to credit reporting agencies pursuant to state and federal law;
(e) to an energy assistance agency to allow a customer to qualify for and obtain financial assistance as provided for in our agency agreement;
(f) if we determine that doing so would be in the public interest (i.e., if we were to suspect that you were using the Web Site in connection with the commission of a crime), or to local, state, and federal law enforcement agencies;
(g) to Retail Electric Providers from whom Community Energy seeks a competitive bid for the supply of electricity to the Customer;
(h) in connection with a sale, merger, consolidation, change in control, transfer of substantial assets, reorganization, or liquidation of Community Energy;
(i) to contractors, subcontractors, agents, consultants, legal counsel, and other designees;
(j) if you provide such information to us in connection with a promotion of a good or service offered by a third party, for purposes of such promotion, including, without limitation, sharing such information with that third party; and
(k) in the context of working with third-party contractors engaged by us in the provision of Community Energy's services.
After we disclose your Personal Information to unaffiliated third parties in such instances, we can no longer control the use or further disclosure of your Personal Information. Consequently, we will not be responsible to you for such use or further disclosure.

4. What Options You Have
You will not be able to use the Web Site as a Customer without providing us with some Personal Information. You may, however, opt out of receiving newsletters and other communications from us.

5. Correcting Your Information
You can ensure that your account information is correct and current by reviewing and updating it at any time. You may do so as often as necessary by editing your account profile. If you are having difficulty doing so, please contact us by e-mail and indicate the problems you have encountered.

6. Security
We take precautions involving physical, electronic, and managerial controls to protect from loss, misuse, unauthorized access or disclosure, and alteration any of your Personal Information in our possession. We urge you to refrain from sharing your login id and password with others. We also strongly recommend that you change your password frequently and store it in a safe place. We employ industry-standard Secure Sockets Layer encryption when obtaining your assent to the Electricity Aggregation Agreement and in other appropriate places. We do not, however, use such encryption during all of your day-to-day use of the Web Site. You should note that the confidentiality of any information transmitted over the Internet cannot be guaranteed.

7. Links to Other Sites
You should be aware that this privacy policy applies only to the Web Site. Importantly, it does not apply to any other web or other site to which a link may be provided. We cannot control and are not responsible for the actions of third parties operating such sites. You should not take the existence of an affiliation with, or a link from, the Web Site to any such other site to mean that it has a privacy policy similar to this one. You should review the privacy policy of any such site.

8. Changes to this Policy
As our business is a very dynamic one, we need to be able to make revisions to this privacy policy. Consequently, we reserve the right to change this privacy policy at any time. You should check this location for any updates and other changes. In the event of a material change, we will indicate on the Web Site that our privacy policy has changed materially and provide a link to the revised policy.

A Note About the Privacy of Children
The Web Site is not directed to or otherwise promoted for use by children. We do not permit children to register to become Community Energy Customers. We do not knowingly collect or use any personal information of any children.

#Terms of use text terms_of_use:

Terms of Use

The following Terms of Use apply to all visitors to or users of this Web site (this "Site"), which is owned and operated by Community Energy, L.P. ("Community Energy"). Please feel free to browse this Site; however, your access and use of this Site is subject to the following terms ("Terms of Use") and all applicable laws. By accessing and browsing this Site, you accept, without limitation or qualification, the Terms of Use. If you do not agree with any of these Terms and Conditions, do not use this Site. Community Energy reserves the right, in its sole discretion, to modify, alter or otherwise update these at any time. By using this Site you agree to be bound by such modifications, alterations or updates and should therefore periodically visit this page to determine the then-current Terms of Use to which you are bound.

1. ACCESS. Access to and use of password protected and/or secure areas of the Site is restricted to authorized users only, and, where applicable, shall be subject to special terms and conditions governing the use of those areas to, among other things, engage in transactions. Accordingly, except for these Terms of Use, this Site or the use thereof shall not in and of itself create any legal relationship between you and Community Energy. If you entered into another agreement with Community Energy (such as an Electricity Aggregation Agreement (the "Agreement"), the Terms of Use, the Agreement, and all terms and conditions referred to therein, shall govern your access and utilization of this Site. Unauthorized individuals attempting to access these areas of the Site may be subject to prosecution.

2. INTELLECTUAL PROPERTY. The trademarks, logos and service marks ("Marks") displayed on the Site are the property of Community Energy and/or other parties. Users of this Site are prohibited from using any Marks for any purpose including, but not limited to use as metatags on other pages or sites on the World Wide Web without the written permission of Community Energy or such third party that may own the Marks. All information and content available on or through the Site ("Content") is protected by copyright. Users are prohibited from modifying, copying, distributing, transmitting, displaying, publishing, selling, licensing, creating derivative works or using any Content available on or through the Site for commercial or public purposes. You also may not, without Community Energy's written permission, frame or "mirror" on any other server any material contained on this Site. Except as expressly permitted above, no portion of the materials on this Site may be reproduced in any form, or by any means, without prior written permission from Community Energy.

3. DISCLAIMER OF WARRANTY. ALL CONTENT, PRODUCTS, AND SERVICES ON THE SITE, OR OBTAINED FROM A SITE TO WHICH THE SITE IS LINKED (A "LINKED SITE") ARE PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, SECURITY OR ACCURACY.

COMMUNITY ENERGY DOES NOT ENDORSE AND IS NOT RESPONSIBLE FOR (A) THE ACCURACY OR RELIABILITY OF ANY OPINION, ADVICE OR STATEMENT MADE THROUGH THE SITE BY ANY PARTY OTHER THAN COMMUNITY ENERGY, (B) ANY CONTENT PROVIDED ON LINKED SITES OR (C) THE CAPABILITIES OR RELIABILITY OF ANY PRODUCT OR SERVICE OBTAINED FROM A LINKED SITE.

OTHER THAN AS REQUIRED UNDER APPLICABLE CONSUMER PROTECTION LAW, UNDER NO CIRCUMSTANCE WILL COMMUNITY ENERGY BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A USER'S RELIANCE ON INFORMATION OBTAINED THROUGH THE SITE OR A LINKED SITE, OR USER'S RELIANCE ON ANY PRODUCT OR SERVICE OBTAINED FROM A LINKED SITE. IT IS THE RESPONSIBILITY OF THE USER TO EVALUATE THE ACCURACY, COMPLETENESS OR USEFULNESS OF ANY OPINION, ADVICE OR OTHER CONTENT AVAILABLE THROUGH THE SITE, OR OBTAINED FROM A LINKED SITE. PLEASE SEEK THE ADVICE OF PROFESSIONALS, AS APPROPRIATE, REGARDING THE EVALUATION OF ANY SPECIFIC OPINION, ADVICE, PRODUCT, SERVICE, OR OTHER CONTENT.

4. LIMITATION OF LIABILITY. Community Energy and its directors, officers, employees and agents shall, to the extent permitted by law, have no liability, contingent or otherwise, whether caused by the negligence of Community Energy, its employees, subcontractors, agents, suppliers, or otherwise, to you or to third parties for the accuracy, timeliness, completeness, reliability, performance or continued availability of this Site or for delays or omissions therein, including, but not limited to, inaccuracies or errors in data. Community Energy shall have no responsibility to maintain the Content or services made available on this Site or to supply any corrections or updates in connection with such Content or services.

YOU AGREE THAT COMMUNITY ENERGY, ITS AFFILIATES, ITS SUPPLIERS, ITS THIRD PARTY AGENTS, THIRD PARTIES POSTING CONTENT OR PRODUCTS ON THE SITE, OR OTHER USERS OF THE SITE AND ANY OF THEIR RESPECTIVE OFFICERS, DIRECTORS, EMPLOYEES, OR AGENTS WILL NOT BE LIABLE, WHETHER IN CONTRACT, TORT, STRICT LIABILITY OR OTHERWISE, FOR ANY INDIRECT, PUNITIVE, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR INDIRECT DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS, COST OF PROCURING SUBSTITUTE SERVICE OR LOST OPPORTUNITY) ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SITE OR A LINKED SITE, OR WITH THE DELAY OR INABILITY TO USE THE SITE OR A LINKED SITE, EVEN IF COMMUNITY ENERGY IS MADE AWARE OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION ON LIABILITY INCLUDES, BUT IS NOT LIMITED TO, THE TRANSMISSION OF ANY VIRUSES WHICH MAY INFECT A USER'S EQUIPMENT, FAILURE OF MECHANICAL OR ELECTRONIC EQUIPMENT OR COMMUNICATION LINES, TELEPHONE OR OTHER INTERCONNECT PROBLEMS (e.g., YOU CANNOT ACCESS YOUR INTERNET SERVICE PROVIDER), UNAUTHORIZED ACCESS, THEFT, OPERATOR ERRORS, STRIKES OR OTHER LABOR PROBLEMS OR ANY FORCE MAJEURE. COMMUNITY ENERGY CANNOT AND DOES NOT GUARANTEE CONTINUOUS, UNINTERRUPTED OR SECURE ACCESS TO THE WEB SITE.

5. HYPERLINKING. THIS SITE MAY PROVIDE A LINK TO OTHER SITES BY ALLOWING THE USER TO LEAVE THIS SITE TO ACCESS THIRD-PARTY MATERIAL OR BY BRINGING THE THIRD-PARTY MATERIAL INTO THIS SITE VIA "INVERSE" HYPERLINKS AND FRAMING TECHNOLOGY. COMMUNITY ENERGY HAS NO DISCRETION TO ALTER, UPDATE, OR CONTROL THE CONTENT ON A LINKED SITE. THE FACT THAT COMMUNITY ENERGY HAS PROVIDED A LINK TO A SITE IS NOT AN ENDORSEMENT, AUTHORIZATION, SPONSORSHIP, OR AFFILIATION WITH RESPECT TO SUCH SITE, ITS OWNERS, OR ITS PROVIDERS. THERE ARE INHERENT RISKS IN RELYING UPON USING, OR RETRIEVING ANY INFORMATION FOUND ON THE INTERNET, AND COMMUNITY ENERGY URGES YOU TO MAKE SURE YOU UNDERSTAND THESE RISKS BEFORE RELYING UPON, USING, OR RETRIEVING ANY SUCH INFORMATION ON A LINKED SITE.

6. CONFIDENTIALITY. You agree that you will maintain the confidentiality of this Site and that you will not disclose or provide access to this Site or its Contents to any person (other than your employees in connection with the performance of their duties to you), except as may be required by applicable law or regulation or by order of a court or regulatory or self-regulatory authority with jurisdiction over you.

Except as required by law, Community Energy will maintain the confidentiality of all user communications which contain personal user information and which are transmitted directly to Community Energy.

User should be aware that Linked Sites may contain confidentiality provisions that differ from the provisions provided herein. Community Energy is not responsible for such provisions, and expressly disclaims any and all liability related to such provisions.

7. INDEMNITY. You agree, at your own expense, to indemnify, defend and hold harmless Community Energy and its employees, representatives, Suppliers and agents, against any claim, suit, action or other proceeding against Community Energy, its employees, representatives, Suppliers and agents, by a third party, to the extent that such claim, suit, action or other proceeding is based on or arises in connection with your use of the Site, or any links on the Site, including, but not limited to (i) your use or someone using your computer's use of the Site; (ii) your use or someone using any password you may obtain; (iii) a violation of the terms set forth in this Terms of Use by you or anyone using your computer or password; (iv) a claim that any use of the Site by you or someone using your computer or password infringes any intellectual property right, is libelous or defamatory, or otherwise results in injury or damage to anyone; (v) any deletions, additions, insertions or alterations to, or any unauthorized use of, the Site by you or someone using your computer or password; (vi) any misrepresentation or breach of representation or warranty made by you contained herein or (vii) any breach of any covenant or agreement to be performed by you hereunder. You agree to pay any and all costs, damages and expenses, including, but not limited to, reasonable attorneys' fees and costs awarded against or otherwise incurred by or in connection with or arising from any such claim, suit, action or proceeding attributable to any such claim.

8. VIOLATIONS OF TERMS OF USE. Community Energy reserves the right to seek all remedies available at law and in equity for violations of these Terms of Use, including the right to block access from a particular Internet address to the Site.

9. LAWS AND REGULATIONS. The Terms of Use shall be governed by the laws of the State of Texas, without regard to conflicts of laws principles. THE PARTIES CONSENT TO JURISDICTION AND VENUE EXCLUSIVELY IN THE STATE OF TEXAS. User access to and use of the Site is subject to all applicable international, federal, state and local laws and regulations.

#This is dummy content for the home page home_content:

English Content

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio. Donec et ipsum et sapien vehicula nonummy. Suspendisse potenti. Fusce varius urna id quam. Sed neque mi, varius eget, tincidunt nec, suscipit id, libero. In eget purus. Vestibulum ut nisl. Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. Fusce metus mi, eleifend sollicitudin, molestie id, varius et, nibh. Donec nec libero.

H2 level heading

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio.

character_set: text/html;charset=UTF-8 username_label: Username password_label: Password remember_me: Remember me on this computer. forgot_password: Forgot your password? login_label: Login error: Error err_msg_404: Oops! The server was not able to find the file you requested. back_to_continue: To continue, click the Back button. err_msg_general: Sorry, Ruby has thrown an exception. details: Details err_label_404: 404 Error err_label_general: Ruby Error #This is used for the type of error. type_label: Type #This is the label for the error message returned by Java. message_label: Message commercial_info_label: Commercial Services commercial_pricing_label: Commercial Pricing commercial_info_content:

Commercial English Content

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio. Donec et ipsum et sapien vehicula nonummy. Suspendisse potenti. Fusce varius urna id quam. Sed neque mi, varius eget, tincidunt nec, suscipit id, libero. In eget purus. Vestibulum ut nisl. Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. Fusce metus mi, eleifend sollicitudin, molestie id, varius et, nibh. Donec nec libero.

H2 level heading

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio.

residential_info_label: Residential Services residential_pricing_label: Residential Pricing residential_info_content:

Residential English Content

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio. Donec et ipsum et sapien vehicula nonummy. Suspendisse potenti. Fusce varius urna id quam. Sed neque mi, varius eget, tincidunt nec, suscipit id, libero. In eget purus. Vestibulum ut nisl. Donec eu mi sed turpis feugiat feugiat. Integer turpis arcu, pellentesque eget, cursus et, fermentum ut, sapien. Fusce metus mi, eleifend sollicitudin, molestie id, varius et, nibh. Donec nec libero.

H2 level heading

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam, justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis ligula. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. Etiam leo pede, rhoncus venenatis, tristique in, vulputate at, odio.

commercial_signup_title: Commercial Registration residential_signup_title: Residential Registration esid_label: Electricy Service Identifier location_description_label: Location Description service_address_label: Service Address city_label: City state_label: State zip_code_label: Zip tax_exempt_checkbox_label: Check this box if this location is tax exempt. service_location_change_label: What would you like to do? service_location_change_option_one: Switch Providers service_location_change_option_2: Obtain New Service current_provider_inquiry: Who is the current provider? add_new_location: Add New Location apartment_label: Apartment suite_label: Suite switch_type_inquiry: What type of switch are you requesting? switch_type_option_1: Standard Switch switch_type_option_2: Selected Switch requested_switch_date: Requested Switch Date existing_contract_inquiry: Check this box if this location is under an existing supply contract. contract_end_date: Contract End Date continue_btn_label: Continue go_back_btn_label: Go Back save_btn_label: Save corporate_headquarters: Corporate Headquarters service_location_label: Service Location Information legal_company_name: Legal Company Name dba_name_label: DBA Name (if applicable) address_label: Address cancel_btn_label: CANCEL privacy_policy_review_caption: To learn how Community EnergyLP safeguards your personal information, review our Privacy Policy. first_name_label: First Name middle_name_label: Middle Name last_name_label: Last Name suffix_label: Suffix prefix_label: Prefix salutation_label: Salutation title_label: Title phone_number_label: Phone Number cell_number_label: Cell Number fax_number_label: Fax Number email_address_label: Email Address tax_id_label: Employer Identification Number (Tax ID) birthdate_label: Date of Birth social_security_number_label: Social Security Number drivers_license_label: Drivers License #State issuing the drivers license. dl_state_issued_label: State Issued billing_information_title: Billing Information same_billing_service_address_inquiry: Check this box if the billing address is the same as the service address; otherwise, please provide a billing address. billing_address_label: Billing Address preferred_language_inquiry: What is your preferred language? english_label: English spanish_label: Spanish auto_pay_option_label: Check this box if you would like for your monthly bill to be automatically charged to a credit card or deducted from a checking account. auto_pay_method_inquiry: How would you like to auto pay your bill each month? ach_payment_label: ACH Payment credit_card_label: Credit Card ach_title: ACH Payment Information name_on_account_label: Name on Account name_of_bank_label: Name of Bank routing_number_label: Routing Number account_number_label: Account Number ach_consent_text: By checking this box I authorize Community EnergyLP to provide my bank account information to the
ciembor commented 12 years ago

Isn't it wrong because :url? I have a property named :url and I tray to use format => :url, as you. In my case app hungs...