0

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

正如这里所解释的

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

但最佳实践表明不要从视图中查询数据

这里Person.all将进行查询以获取所有人

Person.all请从视图中证明此调用的合理性

4

3 回答 3

5

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

于 2013-08-13T19:42:47.040 回答
5

你是对的,不要在视图中查询数据。最好在控制器中准备一个实例变量并将其传递给视图。但我认为这在这里真的值得商榷,因为这是一件小事。当您在这样的视图中拥有它时,您不必返回控制器来找出实例变量所包含的内容,但是如果您想遵守约定,那么您是正确的,您不应该这样做.

于 2013-08-13T19:43:49.563 回答
2

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

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

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

于 2013-08-13T19:53:13.777 回答