Ruby on rails 用于can和x27的Rails简单字段;t隐藏:id
我一直在为rails和HAML使用simple_表单 我有许多行项目,它们有一个唯一的id,我从Order对象中检索Ruby on rails 用于can和x27的Rails简单字段;t隐藏:id,ruby-on-rails,ruby,simple-form,Ruby On Rails,Ruby,Simple Form,我一直在为rails和HAML使用simple_表单 我有许多行项目,它们有一个唯一的id,我从Order对象中检索 = f.simple_fields_for :line_items do |line_items| .f.input :id unless @order.status? .f.input :cost unless @order.status? 但是,每当我遍历这些列表时,我想隐藏(从表单中删除)行_items id,我会尝试放置一个除非语句来删除其他
= f.simple_fields_for :line_items do |line_items|
.f.input :id unless @order.status?
.f.input :cost unless @order.status?
但是,每当我遍历这些列表时,我想隐藏(从表单中删除)行_items id,我会尝试放置一个除非语句来删除其他参数,它会工作(例如:cost),但对于:id,它似乎是一个隐藏字段
<input id="order_line_items_attributes_2_id" name="order[line_items_attributes][2][id]" type="hidden" value="26">
我如何才能成功地删除字段中出现的id,就像我为:cost所做的那样?Rails认为您不应该需要编辑:id,因此这使得编辑变得困难或不可能。如果您想显示:id,这很好,但是显示:id以便对其进行编辑的理由有限 我总是在表单中显示id。一个解决方案 我欺骗了系统,当我使用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" />-->
试试这个:
=f.简单字段_用于:行_项,包括_id:false do |行|项
更多信息:我需要筛选行项目,使用行项目ID,我的控制器会考虑包括此项目。。。。我正在尝试删除这些ID,以便能够仅过滤接受已验证和接受的项目的订单列表…想象一个嵌套表单位于
-标记中的情况。在这种情况下,的=f.simple\u字段将呈现…
,这是无效的html。在这种情况下,您需要使用上面粘贴的解决方案。另一种情况是使用复合主键。