放在哪里产生选择选项
问题描述:
我有一个选择下拉,我生成数据库条目的选项的代码,然后添加一个选项,就像开头:放在哪里产生选择选项
@select = Service.find_services_by_id(id).collect { |p| [p.name, p.id] }
@select.unshift([ "Choose a service", 0])
然后在HAML观点我有:
=select_tag "service_id", options_for_select(@select)
但我期待在重构,要么通过:
1)添加另一种方法的模型,该模型也做了不印字操作返回到我要选择所有的数据在一块
2)移动整个@select定义视图助手和从视图
3)只要具有在控制器首先@select线,然后有一个视图助手做“不印字”部分调用它
但我很难弄清楚最有意义的是什么。思考?
答
我会去3,但不仅做到了unshift
的帮手,但也有创造整个select
的thingie太:
module SomeHelper
def service_select(objects)
select_tag "service_id", options_for_select(objects.unshift(["Select a service", 0]))
end
end
然后在视图中,您只需要调用=service_select(@select)
。
答
1)没有多大意义。该模型不应该将数据标题粘贴到相应的位置 - 这是视图的工作。
2)和3)都是合理的 - 我个人倾向于3),但是任何一个都是好的。
听起来很像第二个。 – 2010-07-08 03:28:07