Mark A. Richman
2007-Dec-05 16:43 UTC
Getting a ''State can''t be blank'' validation error on submit
See http://pastie.caboo.se/124961
I''m basically just trying to validate the Users.state_id field. The
Users table holds the FK to States as user.state_id, where there is a
one-to-many between States and Users.
# state.rb:
class State < ActiveRecord::Base
has_many :users
end
# user.rb:
class User < ActiveRecord::Base
...
belongs_to :state
...
validates_presence_of :state_id
validates_associated :state
...
end
# user_controller.rb:
class UserController < ApplicationController
...
def signup
...
@user = User.new(params[:user])
return unless request.post?
@user.save!
self.current_user = @user
redirect_back_or_default(:controller => ''/user'',
:action =>
''index'')
flash[:notice] = "Thanks for signing up!"
rescue ActiveRecord::RecordInvalid
render :action => ''signup''
end
end
signup.rhtml:
...
<%= error_messages_for :user %>
<% form_for :user, :url => {:action => "signup" } do |f|
-%>
...
<%= f.collection_select :state_id, State.find_all, :id, :name,
{:include_blank => true}, {:style => ''background-color: rgb(255,
255,
160);'', :class => ''form-txt2''} %>
...
development.log:
...
Processing UserController#signup (for 127.0.0.1 at 2007-12-05
09:57:40) [POST]
Session ID: 815f814a0b1d8cb815f0e047a920f142
Parameters: {"user"=>{"city"=>"",
"born_on(1i)"=>"1907",
"postal_code"=>"",
"born_on(2i)"=>"12",
"looking_for_id"=>"1",
"headline"=>"",
"height_inches_id"=>"1",
"password_confirmation"=>"",
"country"=>"United States",
"have_children_id"=>"1",
"born_on(3i)"=>"5",
"smoke_id"=>"1",
"terms_of_service"=>"0",
"want_children_id"=>"1",
"ethnicity_id"=>"1",
"drink_id"=>"1",
"description"=>"",
"marital_status_id"=>"1",
"body_type_id"=>"1",
"interests_string"=>"",
"hair_color_id"=>"1", "login"=>"",
"password"=>"",
"religion_id"=>"1", "email"=>"",
"state"=>"18",
"profession"=>""},
"typed_code"=>"", "x"=>"30",
"y"=>"11",
"action"=>"signup",
"controller"=>"user",
"picture"=>"",
"preference"=>{"receive_jsh_mail"=>"1"}}
State Load (0.000000) SELECT * FROM states
...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---