我有一个<select>
清单。其中,用户无权访问某些选项(用户可以看到这些选项但不能选择它们)。
Ruby on Rails 中是否有任何帮助程序可以做到这一点?
我有一个<select>
清单。其中,用户无权访问某些选项(用户可以看到这些选项但不能选择它们)。
Ruby on Rails 中是否有任何帮助程序可以做到这一点?
通常,您可能会使用select
助手。
在这种情况下,这个:
select("post", "category", Post::CATEGORIES, {:disabled => 'restricted'})
可能变成:
<select name="post[category]">
<option></option>
<option>joke</option>
<option>poem</option>
<option disabled="disabled">restricted</option>
</select>
除了提供一组禁用的选项,使用该collection_select
方法,您还可以提供一个 Proc:
collection_select(:post, :category_id, Category.all, :id, :name, \
{:disabled => lambda{|category| category.archived? }})
如果方法归档时“2008 年的东西”和“圣诞节”类别返回 true?被调用,这将返回:
<select name="post[category_id]">
<option value="1" disabled="disabled">2008 stuff</option>
<option value="2" disabled="disabled">Christmas</option>
<option value="3">Jokes</option>
<option value="4">Poems</option>
</select>
您还可以在方法的选项哈希中提供一组禁用的选项options_for_select
。参考:apidock.com
带有一组禁用选项的示例
options_for_select(["Free", "Basic", "Advanced", "Super Platinum"], \
:disabled => ["Advanced", "Super Platinum"])
给出:
<option value="Free">Free</option>
<option value="Basic">Basic</option>
<option value="Advanced" disabled="disabled">Advanced</option>
<option value="Super Platinum" disabled="disabled">Super Platinum</option>
尝试这个
<%= f.select :action_item_status, action_item_status, {}, {:disabled => true} %>
手动构造选项并设置禁用属性
<option disabled="disabled"></option>
并尝试禁用选项