Forum: Ruby on Rails form_for for a has_one relation model

A4d2ee843ae03aadc6a980fc06a1cb2d?d=identicon&s=25 Jean (Guest)
on 2012-11-04 23:20
(Received via mailing list)
Hello guys, I'm new in rails and I have the following question:

I have two model

user and user_informacion:

class User < ActiveRecord::Base
  attr_accessible :email, :password, :password_confirmation
  has_one :user_information
  has_secure_password

  before_save { |user| user.email = email.downcase }
  before_save :create_remember_token

  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
  validates :password, presence: true, length: { minimum: 6 },
confirmation: true, unless: Proc.new { |a| !a.new_record? &&
a.password.present? }

def send_password_reset
self.password_reset_token = SecureRandom.urlsafe_base64
self.password_reset_at = Time.zone.now
self.password = self.password
self.save!(:validate => false )
UserMailer.password_reset(self).deliver
end
 def reset_password_token
self.password_reset_token = nil
self.password_reset_at = nil
save!
end

  private

  def create_remember_token
  if self.new_record?
  self.remember_token = SecureRandom.urlsafe_base64
  end
  end

end


class UserInformation < ActiveRecord::Base
  belongs_to :user
  attr_accessible :address, :address2, :business, :descripcion,
:identification_number, :mobile_cell, :name, :phone_number
  validates :address, presence: true, length: { :maximum => 250 }
  validates :address2, length: { :maximum => 250 }
  validates :descripcion, presence: true, length: { :maximum => 300 }
  validates :identification_number, presence: true
  validates :phone_number, presence: true, length: { :is => 11 }
  validates :mobile_cell, :length => { :is => 11 }
  validates :user_id, presence: true
end


As you can see User has_one UserInformation

My routes are like this:

  resources :users do
  member do
    resource :user_information
  end
  end
  resources :sessions, only: [:new, :create, :destroy]
  resources :password_resets

  root to: 'users#new'

  match '/signup',  to: 'users#new'
  match '/signin',  to: 'sessions#new'
  match '/signout', to: 'sessions#destroy', via: :delete


I having a lot of problem tying to figure out how to make a form_for for
my
create action of my user_information. I tried with
form_form(@user_information) do |f|, form_for([user,
user.user_information.build]) do |f| but I always get an error. Does
anyone
can help me with this form_fom, please??? The form_for if for my new
view
of may user_information.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.