17

したがって、データベースには、通貨に使用するための精度 2 の 10 進数フィールドがあります。小数点以下の最後の桁が 0 で終わらない限り、問題なく動作します。799.90。代わりに、フィールドに表示されるときに 799.9 にストリップされます。については知っnumber_with_precisionていますが、そのヘルパー メソッドを simple_form 数値フィールドで使用できませんでした。これは、シンボルと html オプションしか引数としてとらないためです。

次に、simple_form のデフォルトの number_field を拡張するカスタム入力を作成する必要があると考えましたが、構文が十分に文書化されていないように見えるためnumber_with_precision、このカスタムの定義で呼び出す方法を理解できませんでした。入力。

私は本質的に何をしたいですかこの質問のOP 10進数精度のFormtastic number field? formtasticで欲しかった。ありがとう!

4

2 に答える 2

37

私の経験では、formtasticでそれを行うことができれば、通常はSimpleFormでそれを行うことができます。これを試して:

<%= f.input :sales_price, :input_html => {value: number_with_precision(f.object.sales_price, precision: 2) } %>

input_fieldを使用する場合は、:input_html:は必要ありません。

<%= f.input_field :sales_price, value: number_with_precision(f.object.sales_price, precision: 2) %>
于 2012-07-12T23:17:06.103 に答える