2016-02-16 83 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