Ruby on rails 3 RoR 3.2:尝试使用用户的姓名查找用户

Ruby on rails 3 RoR 3.2:尝试使用用户的姓名查找用户,ruby-on-rails-3,activerecord,ruby-on-rails-3.2,Ruby On Rails 3,Activerecord,Ruby On Rails 3.2,我有一个用户具有以下特性 身份证号码:1 名称:维琴佐中堂 电子邮件:暂时为空 该系统正试图通过“Vicenzo Guilherme中堂”找到该用户 有人对我如何使用最全名找到用户1有什么建议吗 问题是,我只能接收最完整的名称作为输入,而不仅仅是名字和姓氏。您可以使用正则表达式捕获名称的部分,而只需忽略中间的名称 这将捕获名称的每个部分 ([^ ]+)+ 使用中: params[:user] =~ /([^ ]+)+/ User.find_by_name("#{$1} #{$3}") 注

我有一个用户具有以下特性

身份证号码:1 名称:维琴佐中堂 电子邮件:暂时为空

该系统正试图通过“Vicenzo Guilherme中堂”找到该用户

有人对我如何使用最全名找到用户1有什么建议吗


问题是,我只能接收最完整的名称作为输入,而不仅仅是名字和姓氏。

您可以使用正则表达式捕获名称的部分,而只需忽略中间的名称

这将捕获名称的每个部分

([^ ]+)+
使用中:

params[:user] =~ /([^ ]+)+/
User.find_by_name("#{$1} #{$3}")  
注意:如果名称有两个中间名等,这将不起作用。如果这是一个问题,那么您可以修改它以满足您的需要。也许是这样:

parts = params[:user].scan(/([^ ]+)+/)
  # parts will equal [["Vicenzo"], ["Guilherme"], ["Naves"]]
User.find_by_name("#{parts.first.first} #{parts.last.last}")