Ruby:我如何制作一个显示的组合框

时间:2015-07-09 14:10:10

标签: ruby-on-rails ruby combobox

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

我有两个分支:

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

我有一个验证类的show create视图:

 <%= 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 %>

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

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作来实现您的目标。

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

有关详细信息,请参阅此link