using assign_attributes instead to prevent save if user clicked preview button