从参数中删除白色 space

Remove white space from params

我有一段代码可以从表单中收集参数并将它们读取到邀请中,如我所见。问题是这些参数之一是我想确保没有尾随空格的电子邮件。我如何应用 strip 来邀请以及输入其中的所有参数?

def invite_partner
  return unless invite = params[:partner]
  return flash.now[:error] = 'Please select a role' unless role = Role.where(klass: invite[:klass], name: 'Admin').first
  return flash.now[:alert] = 'Email address already in use' if User.where(email: invite[:email]).first

  raise 'bugger' unless current_user.is_a?(User)

  partner_invite = PartnerInviteMailer.invite(current_user.operator, invite[:email], invite[:klass], Portal.portal_for_hostname(host_from_request))
  partner_invite.deliver

  flash.now[:success] = "#{invite[:klass]} invited, email sent to #{invite[:email]}"
end

这有帮助吗?

params[:partner].each { |key, value| value.strip! }

跳过数组中类似的相关 ID。

params[:partner].each { |key, value| value.strip! unless value.kind_of?(Array) }

您可以使用 try 方法,它将处理数组、nil 值等,而无需检查 kind_of?.

params[:partner].each { |key, value| value.try(:strip!) }