Imagine a seguinte situação: Uma tabela users com duas colunas, first_name e last_name.
[source:ruby] class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.column first_name, :string t.column last_name, :string end end def self.down drop_table :users end end [/source]
Mas em minha página de cadastro quero que meu usuário preencha apenas um campo com o nome completo.
[source:html]
Cadastro
<% form_for :user, :url => user_path do |f| %>
Nome Completo:
<%= f.text_field :full_name %>
Podemos resolver isto de uma forma muito simples:
[source:ruby] class User < ActiveRecord::Base def full_name [first_name, last_name].join(' ') end def full_name=(name) split = name.split(' ', 2) self.first_name = split.first self.last_name = split.last end end [/source]