Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用于can和x27的Rails简单字段;t隐藏:id_Ruby On Rails_Ruby_Simple Form - Fatal编程技术网

Ruby on rails 用于can和x27的Rails简单字段;t隐藏:id

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,我会尝试放置一个除非语句来删除其他

我一直在为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,我会尝试放置一个除非语句来删除其他参数,它会工作(例如: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。在这种情况下,您需要使用上面粘贴的解决方案。另一种情况是使用复合主键。