Rails 3 - collection_select - 理解PROMPT?

时间:2010-10-13 01:53:23

标签: ruby-on-rails ruby-on-rails-3

我正在构建一个表单,允许用户CRUD项目权限。

...

<% roles = Role.all %>
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true %>

上述问题,虽然它呈现:

  1. 如果值匹配,则会在下拉列表中显示所选内容,这很好。问题,是用户是否设置为ADMIN。使用下拉列表可以很容易地将权限更改为其他内容,但不能清除权限......
  2. 示例...选择下拉:  - 请选择   - 管理员   - 会员   - 嘉宾

    如果选择了管理员,请选择从不显示....如何显示选项以允许用户删除设置?

    有什么想法吗? THX

2 个答案:

答案 0 :(得分:16)

我相信你想要:

<%= f.collection_select(:role_id, roles, :id, :name, {:include_blank => 'Please Select'} %>

有关详细信息,请参阅FormOptionsHelper docs

答案 1 :(得分:1)

<% roles = Role.all %>
<%= f.collection_select :role_id, roles, :id, :name, :prompt => (@user.admin? ? true : false) %>

这对你有帮助吗?

你必须有办法检查用户是否是管理员。在三元操作中使用该条件来设置值:prompt ..

lemme知道它是怎么回事:))