Ruby: 我怎样才能制作一个显示的组合框

Ruby: How can i make a combobox that shows

我想知道如何制作一个显示我数据库中所有用户列表的组合框,让我自己解释一下:

我有两个班级:

class User < ActiveRecord::Base
  validates :password, presence: true, confirmation: {strict: true}
  validates :password_confirmation, presence: true
  validates :telephone, uniqueness: true, presence: true, numericality: { only_integer: true }, presence: true, length: { minimum: 9, maximum: 9 }
  validates :name, presence: true, length: { minimum: 4, maximum: 30 }, format: { with: /^[\w\s-]*/u, multiline: true,
                                                                                  message: 'only allows letters' }
  has_many :valorations
end

class Valoration < ActiveRecord::Base
  validates :points, presence:true, numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: 100 }
  belongs_to :user
  belongs_to :hability
end

我有一个用于验证的显示创建视图 class:

 <%= form_for(@valoration) do |f| %>
  ...errors check...
  <div class="field">
    #combo box code to be added
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我想做的是创建一个组合框,它使用 fselect 执行类似于以下伪代码的操作:

发明代码:

<%= f.select :user_id, options_for_select( for_each user do |u|
   [[u.name,u.id]] 
end %>

所以最后我有一个包含所有用户的组合框,我是一个菜鸟 rails 真的知道怎么做所以欢迎任何帮助

您可以执行以下操作来实现您想要的。

<%= f.select :user_id, User.all.collect { |u| [ u.name, u.id ] } %>

更多信息可以参考这个link