我正在尝试禁止在表单上更新下拉列表。
目前我的表格中有这一行:
<%= 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为真,但是当我编辑表单时,我仍然可以在下拉列表中选择新值。
我在这里做错了什么?
答案 0 :(得分:6)
select
接受5个参数,第4个参数是帮助程序的一组选项。第五个是像class和id的html选项。我认为你需要把它传递给那个
<%= 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} %>