2

私はHAMLと一緒にレールにsimple_formを使用しています

Order オブジェクトから取得した一意の ID を持つ多くの line_items があります。

    = f.simple_fields_for :line_items do |line_items|
     .f.input :id unless @order.status?
     .f.input :cost unless @order.status?

ただし、これらのリストを繰り返し処理するときはいつでも、line_items id を非表示 (フォームから削除) したいと思います。隠しフィールドのようです

     <input id="order_line_items_attributes_2_id" name="order[line_items_attributes][2][id]" type="hidden" value="26">

:cost で行ったのと同じように、ID をフィールドに表示されないようにするにはどうすればよいですか?

4

3 に答える 3

5

これを試して:

= f.simple_fields_for :line_items, include_id: false do |line_items|

詳細:http ://apidock.com/rails/ActionView/Helpers/FormHelper/form_for

于 2012-12-04T16:30:50.697 に答える
0

Rails は :id を編集する必要はないと考えているため、編集が困難または不可能になります。:id を表示したい場合は問題ありませんが、編集できるように :id を表示する理由は限られています。

私は常にフォームにIDを表示します。

于 2012-11-05T17:47:22.657 に答える
0

回避策...

HTMLコメントを使用してフィールドをレンダリングして表示を停止し、送信を停止することで、システムをだましました

/ =f.input :id unless @order.status?

- の代わりに = を使用しているので、フィールドはレンダリングできますが、html コメント内に隠れています。

<!--<input class="hidden" id="order_line_items_attributes_2_product_id" name="order[line_items_attributes][2][product_id]" type="hidden" />-->
于 2012-11-06T03:15:11.447 に答える