2013-03-11 60 views
0

我试图禁用从窗体上更新的下拉列表。Rails f.select试图禁用更改下拉列表

目前我有这条线在我的形式:

<%= 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是真实的,但是当我编辑表单,我仍然可以在下拉列表中选择新值。

我在这里做错了什么?

回答

6

select接受5个参数,第4个是帮助者的一组选项。第五个是像class和id这样的html选项。我认为你需要将它传递给

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

UPDATE:没看到在代码中options_for_select。你并不需要,如果你使用select,你只需要使用,当你使用select_tag

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

我试过以前,当我这样做,我得到这个错误'错号在我的f.select行上的参数(3的2)'。 – Catfish 2013-03-11 06:46:56

+0

你可以检查我更新的答案吗?当我添加时{ – jvnill 2013-03-11 06:51:35

+0

},它工作正常。 – 2014-08-01 23:06:06