【发布时间】:2016-02-25 19:23:41
【问题描述】:
我的Member 模型中有两个属性first_name 和last_name。我的要求是给我一个全名数组:
["Jane Doe", "John Doe", "Foo Bar"]
而且,对于每个元素我需要:
- 将每个元素解析为名字和姓氏
- 通过
first_name和last_name(如果存在)查找每个成员记录
我尝试在模型范围内创建它,如下所示:
class Member < ActiveRecord::Base
scope :find_by_full_name, -> (full_name) { |full_name|
first_name = full_name.split(' ').first
last_name = full_name.split(' ').last
where(first_name: first_name, last_name: last_name)
}
它适用于字符串,但不适用于数组。我回顾了这篇文章——https://stackoverflow.com/a/8155276/4379077。看起来 Rails 应该检测它是数组还是字符串,并相应地处理每种类型。经过一堆或控制台尝试(包括将元素转换为字符串)后,我不知道自己做错了什么,或者除了创建范围之外,我应该以不同的方式进行。任何帮助表示赞赏。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rails-activerecord