1

我正在尝试禁止在表单上更新下拉列表。

目前我的表格中有这一行:

<%= f.select :permission, options_for_select([['Admin', 'admin'], ['Read Only', 'readonly'], ['Editable', 'editable']], {:disabled => @permissions_disabled}) %>

我的编辑控制器方法包含:

@permissions_disabled = params[:id].to_i == current_user.id.to_i
p @permissions_disabled

我可以在我的日志中清楚地看到 1@permissions_disabled1 是真的,但是当我编辑表单时,我仍然可以在下拉列表中选择新值。

我在这里做错了什么?

4

1 回答 1

8

select接受 5 个参数,第 4 个是帮助器的一组选项。第 5 个是 html 选项,如 class 和 id。我认为您需要将其传递给

<%= f.select :permission, options_for_select([['Admin', 'admin'], ['Read Only', 'readonly'], ['Editable', 'editable']], {}, {:disabled => @permissions_disabled}) %>

options_for_select更新:在您的代码中没有看到。如果您正在使用,则不需要它select,您只想在使用时使用它select_tag

<%= f.select :permission, [['admin', 'Admin'], ['readonly', 'Read Only'], ['editable', 'Editable']], {}, {:disabled => @permissions_disabled} %>
于 2013-03-11T06:45:39.383 回答