我一直在使用simple_form和HAML一起使用rails
我有一些line_items他们有一个唯一的ID,我从Order对象
中检索 = f.simple_fields_for :line_items do |line_items|
.f.input :id unless @order.status?
.f.input :cost unless @order.status?
但是,每当我遍历这些列表时,我想隐藏(从表单中删除)line_items id,我尝试使用除非语句删除其他参数并且它有效(例如:成本)但是对于:id它似乎是一个隐藏的字段
<input id="order_line_items_attributes_2_id" name="order[line_items_attributes][2][id]" type="hidden" value="26">
如何成功删除ID,使其不会出现在字段中,就像我为此做的那样:cost?
答案 0 :(得分:5)
试试这个:
= f.simple_fields_for :line_items, include_id: false do |line_items|
更多内容:http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for
答案 1 :(得分:0)
Rails认为你永远不需要编辑:id,因此很难或不可能。如果你想显示:id,那很好,但是提供:id这样可以编辑它的理由有限。
我只是一直在表单中显示id。
答案 2 :(得分: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" />-->