使用模型中的名称填充rails中的选择框

时间:2012-06-30 09:50:37

标签: ruby-on-rails ruby activerecord

我一直在浏览堆栈以及互联网的其余部分来回答这个问题,似乎没有什么能够提供“足够”的答案来取得任何进展。我是网络开发的新手,所以任何帮助都会受到赞赏。

在我的模型中,每个用户通过分配都有很多角色,角色通过分配有很多用户。

当我创建新作业时,我希望有一个下拉框,其中包含每个用户的第一个+姓氏。我似乎无法在互联网上找到任何东西来指导我这一点,但话又说回来也许我没有使用正确的术语来搜索东西。任何指针都非常感谢!

我试过了:

<%=f.select :user_id, select("assignment", "user_id", 
  User.all.collect {|u| [ [u.name,u.surname].join(" "), u.id ] },
  { :include_blank => true }) %>

但所有返回的都是空白的选择框。我通过控制台运行收集查询以确保它正常工作但由于某种原因它没有填充选择框。

1 个答案:

答案 0 :(得分:0)

select("assignment", "person_id", 
  Person.all.collect {|p| [ [p.first_name,p.last_name].join(" "), p.id ] },
  { :include_blank => true })

或在模型中定义full_name并使用

options_from_collection_for_select(@people, 'id', 'full_name')