2016-02-16 81 views
0

儘管指定了值,但輸入字段被禁用後,如何保存輸入值?禁用字段時保存輸入值

@vat_rate值不會被保存:

<%= f.text_field :vat, value: @vat_rate, disabled: true %> 

如果禁用設置爲false,那麼這個值被保存到:vat列。爲什麼?

公司以20%的價格註冊增值稅,因此未經批准不允許更改。在他們的發票表格中,20%被顯示並且不能被編輯。這就是我想要的。我希望在使20%可見的同時禁用該字段。

回答

2

我只是要完成@ Vasfed的回答:禁用的字段是而不是發送到瀏覽器。你可以使用隱藏字段,但請不要(再次,請參閱@ Vasfed的答案)。

要將值存儲在Rails中的會話中,您可以將其設置爲session[:key] = 20,但它可能不是最好的想法:您可以重新計算它,或者在需要時從數據庫重新獲取它它。

+0

我仍然想要顯示值。在保存數據之前,我可以讓模型處理任何「手動」更改。 – Sylar

+2

@Sylar禁用該字段以顯示該字段,並在您的控制器中從數據庫中獲取該字段。那樣的話,這將是安全的,你的用戶將無法篡改它。 – Ven

+0

謝謝。這工作。 – Sylar

1

不信任來自客戶端的數據,用戶可能會改變您的頁面並從設置其他值中獲取某些內容。

例如,您可以在會話中或通過其他方式傳遞值 - 在創建/更新操作中再次計算/獲取值。

+0

謝謝,但如何?對不起,我還是個小老頭。 – Sylar

+0

@Sylar'session [:something] = 123',但在保存之前再次計算/獲取 – Vasfed