我需要遍历一系列对象广告并找到属性的名称:name包含params的子字符串[string_search]
答案 0 :(得分:4)
让ary成为Ads对象的数组。 (希望你使用红宝石)
ary.find{|obj| !obj.name.match(/#{params[string_search]}/).nil?}
使用'select'代替'find'来选择所有此类对象
答案 1 :(得分:1)
这可能适合你:
ads = Ads.select do |ad|
ad.respond_to?(:name) && ad.name =~ /#{params[:string_search]}/
end
答案 2 :(得分:0)
我认为您使用的是Ruby,因为符号:name
这应该让你朝着正确的方向,你有一个对象数组,并在:name属性中寻找刺痛的“ool”。
a = [{:name => 'no'},{:name => 'pool'}, {:name => 'cool'}]
a.find_all{|elem| elem[:name].index "ool"}
答案 3 :(得分:0)
试试这个:
#assumes your array of objects is called 'foo'
foo.select{|o| o.name =~ /#{params[:string_search]}/}