ROR:在选择框中填充数据的最佳方法是什么

时间:2013-08-13 19:40:58

标签: ruby-on-rails ruby ruby-on-rails-3

Ruby on Rails :在选择框中填充数据的最佳方法是什么

解释here

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {include_blank: 'None'})

但最佳做法表示不查询来自视图的数据

此处Person.all会发出查询以获取所有人

请从视图

证明此Person.all来电

3 个答案:

答案 0 :(得分:5)

为什么不在控制器中添加@people = Person.all,然后在视图中添加@people.collect { ... }?这样,您将在控制器中进行查询,而不是在您的视图中进行查询。

答案 1 :(得分:5)

你是对的,不要在视图中查询数据。更好的方法是在控制器中准备一个实例变量并将其传递给视图。但我认为这在这里真的值得商榷,因为这是一件小事。当你在这样的视图中使用它时,你不必回到控制器来找出实例变量的含义,但如果你想坚持惯例,那么你是正确的,你不应该这样做

答案 2 :(得分:2)

不要获取对象的所有属性,而是使用select子句,如

Person.select('id,name').map{|person| [person.id, person.name]}, and off-course interact 

使用您的数据库(如控制器< => model< =>数据库),根据MVC架构。