1

我有一个<select>清单。其中,用户无权访问某些选项(用户可以看到这些选项但不能选择它们)。

Ruby on Rails 中是否有任何帮助程序可以做到这一点?

4

3 回答 3

3

通常,您可能会使用select助手。

参考:api.rubyonrails.org

在这种情况下,这个:

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>
于 2012-09-03T09:03:12.970 回答
0

尝试这个

<%= f.select :action_item_status, action_item_status, {}, {:disabled => true} %>
于 2012-09-03T09:02:14.887 回答
0

手动构造选项并设置禁用属性 <option disabled="disabled"></option>并尝试禁用选项

于 2012-09-03T09:02:31.163 回答