2013-03-11 16 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