在“select”帮助器内迭代数组

时间:2014-04-25 12:56:00

标签: ruby-on-rails ruby

我有编辑形式的选择器,应该将用户分配给项目。

= f.label :user_id
= f.select(:user_id, [['First user', 1], ['Second user', 2]])

现在是样本数据。

用户模型应解析选择器中每个现有用户的user.name和user.id。这样我就可以将所需的用户分配给项目

现在我有

- User.all.each do |user|
  = f.select(:user_id, [[user.name, user.id]])

但它只是为每个用户创建单独的选择器。 但我需要在一个选择器中创建一个现有用户列表。哪个是显示用户迭代结果的最佳方法?我想应该有%li标签,但我无法弄清楚如何正确实现它。

2 个答案:

答案 0 :(得分:2)

根据需要使用f.select,您可以使用pluck

= f.select(:user_id, User.pluck(:name, :id))

User.pluck(:name, :id)创建一个[name, id]元组数组。

答案 1 :(得分:1)

如果我理解正确,您可以使用collection_select帮助:

f.collection_select(:user_id, User.all, :id, :name)