Rails如何为属性分配多个值

时间:2015-07-24 20:33:31

标签: ruby-on-rails attributes

我在铁轨上打招呼,所以我甚至不确定这是否可行,如果没有请写给我。

我的目标是编写一个搜索功能来搜索db。

表单基于check_box_fields,它发送两个数组clanclass。然后它通过数据库进行搜索。但我不知道如何设置多个属性值来记录。

搜索引擎:

 def self.school_search(clan, class)
   School.where(clan: clan, class: class)
 end

在我的种子文件中我创建了几个对象:

schools = [
  { nazwa: "Smok Bushi",
    clan: "Smok",
    class: "Bushi"
  },
  { nazwa: "Pajak Bushi",
    clan: "Pajak",
    class: "Bushi", "Shugenja"
  }
]

schools.each do |school|
  School.create(school)
end

当我搜索一个我发送params氏族的对象时,一切都很顺利:" Smok"和班" Bushi"和对象被选中。但我希望第二个对象可以被任何一个部族找到:" Pajak"上课:" Bushi"或氏族:" Pajak"上课:" Shugenja"。我试图将此值作为数组传递,但它没有帮助。

编辑:使用英文名称作为属性

2 个答案:

答案 0 :(得分:1)

实际上,正如您所说,您可以将数组传递给属性。所以也许你做错了其他事情。

Active Records' Documentation很清楚(阅读"条件"子部分)。

编辑:添加示例代码以澄清

# This works
Model.where(title: ['Hello', 'Rails'])

答案 1 :(得分:0)

您无法为一个属性指定多个值。也许你应该创建协会学校有很多klasa和klasa属于学校。 附:最好使用英语单词而不是波兰语(klasa = class)