在Rails中下拉框

ala*_*dey 27 ruby-on-rails

如何使用Rails创建下拉选择框?如果我已完成查询,请说:

@roles = Role.all
Run Code Online (Sandbox Code Playgroud)

那么如何显示包含所有@ roles.name的框?

编辑:执行下拉框后.如何让它响应选择?我应该制作表格吗?

Dav*_*ows 45

使用collection_select助手 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001593

这将允许您编写如下内容:

collection_select(:user, :role_id, @roles, :id, :role_title, {:prompt => true})
Run Code Online (Sandbox Code Playgroud)

得到

<select name="user[role_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">Administrator</option>
  <option value="2">User</option>
  <option value="3">Editor</option>
</select>
Run Code Online (Sandbox Code Playgroud)


eri*_*rik 15

这将创建一个下拉列表,在下拉列表中显示角色名称,但使用role_id作为表单中传递的值.

select("person", "role_id", @roles.collect {|r| [ r.name, r.id ] }, { :include_blank => true })
Run Code Online (Sandbox Code Playgroud)