first_or_create por correo electrónico y luego guarde el modelo anidado
Yo dos modelosUser
ySubmission
como sigue:
class User < ActiveRecord::Base
# Associations
has_many :submissions
accepts_nested_attributes_for :submissions
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :name, :role, :submission_ids, :quotation_ids, :submissions_attributes
validates :email, :presence => {:message => "Please enter a valid email address" }
validates :email, :uniqueness => { :case_sensitive => false }
end
class Submission < ActiveRecord::Base
belongs_to :user
attr_accessible :due_date, :text, :title, :word_count, :work_type, :rush, :user, :notes
validates :work_type, :title, :text,:presence => true
validates :text, :length => { :minimum => 250 }
validates :word_count, :numericality => { :only_integer => true }
end
Tengo un formulario que recopila los datos requeridos por estos dos modelos. Controlador de usuarios:
def index
@user = User.new
@user.submissions.build
end
def create
@user = User.where(:email => params[:user][:email]).first_or_create(params[:user])
if @user
redirect_to :root
else
render 'pages/index'
end
end
Lo que quiero hacer es primero verificar si el usuario ya existe en el sistema por el correo electrónico enviado. Si es así, quiero crear un envío para ese usuario. De lo contrario, cree el usuario y el envío al mismo tiempo.
Estoy confundido sobre cómo hacer esto con elfirst_or_create
método.
Cualquier ayuda apreciada.