first_or_create по электронной почте, а затем сохранить вложенную модель

Я две моделиUser а такжеSubmission следующее:

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

У меня есть форма, которая собирает данные, необходимые для этих двух моделей. Пользовательский контроллер:

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

Я хочу сначала проверить, существует ли пользователь в системе по отправленной электронной почте. Если так, то я хочу создать представление для этого пользователя. В противном случае создайте пользователя и отправку одновременно.

Я запутался, как это сделать сfirst_or_create метод.

Любая помощь приветствуется.

Ответы на вопрос(0)

Ваш ответ на вопрос