如何使用初始化的模型作为模式打开的唯一标识符?

我有一个窗体,它具有fields_for循环遍历的多个记录。每条记录使用打开的模式,然后用于添加表单条目。我的问题是,为了打开模式,我需要使用唯一的标识符。在创建“主”表单记录之前,我没有ID可以用作唯一标识符。我尝试使用初始化的版本,该版本是唯一的,但不会打开模型。我认为是因为初始化的记录中有一个#...

创建记录时,我有这个工作,因为那样我就可以使用ID。但是这是初始化记录的问题:

我的控制器:

@shop_product = ShopProduct.find_or_initialize_by()

表格总结:

<%= form_for @shop_product do |f| %>
    <%= f.fields_for :shop_product_print_files do |ff| %>
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal-<%= "#{ff.object.print_location.id}" %>_<%= "#{@shop_product}" %>"  id="printLocationId_<%= "#{ff.object.print_location.id}" %>(<%="#{ff.object.print_location.id}"%>)">
        Choose Image
    </button>
    <div class="modal fade" id="myModal-<%= "#{ff.object.print_location.id}" %>_<%= "#{@shop_product}" %>" tabindex="-1" role="dialog" data-keyboard="false">
    </div>
    <% end %>
    <%= f.submit "Sync" %>
<% end %>

转换为:http : //jsfiddle.net/a01h6rz7

^这显示了按钮和模式之间的关系。模态有很多,因此我需要一个独特的模态,因此模态会打开正确的关联。

创建记录后,就可以使用@shop_product.id它了。有什么方法可以@shop_product在新产品上使用,以获得可以正常工作的唯一标识符吗?

我标记了javascript,以防万一可能有基于@shop_product初始化创建唯一标识符的想法或方法如果有更多信息想帮助解决,请告诉我

海滩格罗弗

试试这个代码

<%= form_for @shop_product do |f| %>
    <% shop_product_id = @shop_product.object_id %>
    <%= f.fields_for :shop_product_print_files do |ff| %>
        <% print_location_id = ff.object.print_location.id%>
    <button
        type="button"
        class="btn btn-primary"
        data-toggle="modal"
        data-target="#myModal-<%= print_location_id %>_<%= shop_product_id %>"
        id="printLocationId_<%= print_location_id %>(<%= print_location_id %>)"
    >
        Choose Image
    </button>
    <div
        class="modal fade"
        id="myModal-<%= print_location_id %>_<%= shop_product_id %>"
        tabindex="-1"
        role="dialog"
        data-keyboard="false">
    </div>
    <% end %>
    <%= f.submit "Sync" %>
<% end %>
  1. 首先不要使用,@shop_product因为多数民众赞成在一个对象。如果您需要参考并且还没有ID,object_id将为您提供一个唯一的标识符。
  2. 如果需要一次又一次地创建/使用相同的东西,则可以在模式中创建一个方法,或者将值提取到块内的变量中。
  3. 如果您不需要,print_location则不需要进行ff.objec.print_location.id查询print_location改为使用print_location_id
  4. 不要像这样使用不必要的字符串插值,<%= "#{ff.object.print_location.id}" %>而要使用简单的erb代码,例如<%= ff.object.print_location.id %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未声明的标识符初始化帧

来自分类Dev

对已经初始化的View Controller使用标识符执行Segue

来自分类Dev

如何生成与给定模式匹配的随机看起来唯一的标识符

来自分类Dev

PostgreSQL:如何创建前缀序列作为唯一标识符?

来自分类Dev

C#-使用枚举作为唯一标识符的替代方法

来自分类Dev

FiddlerCore:使用Session.id作为唯一标识符是否安全?

来自分类Dev

C#-使用枚举作为唯一标识符的替代方法

来自分类Dev

如何获得唯一的线程标识符?

来自分类Dev

如何获得函数的唯一标识符

来自分类Dev

如何从设备制作唯一标识符?

来自分类Dev

如何创建基于多个列的唯一标识符?

来自分类Dev

Facebook 如何生成唯一标识符

来自分类Dev

如何指定类的唯一标识符

来自分类Dev

Stata:使用egen group()创建唯一标识符

来自分类Dev

使用某些唯一标识符识别Microsoft Band

来自分类Dev

使用purrr进行下采样。唯一标识符

来自分类Dev

使用 Fluent API 添加唯一标识符

来自分类Dev

如何在 python 中使用文件名的一部分作为连接的唯一标识符?

来自分类Dev

如何在VBA中使用唯一标识符引用Excel链接

来自分类Dev

如何使用R在缺少某些值的唯一标识符中添加缺失的零?

来自分类Dev

如何使用唯一标识符批量处理水印图像?

来自分类Dev

在React Native初始化项目中为iOS设置Facebook SDK时使用未声明的标识符

来自分类Dev

iCloud唯一标识符

来自分类Dev

生成简短的唯一标识符

来自分类Dev

添加唯一标识符

来自分类Dev

唯一的Linux系统标识符

来自分类Dev

获取对象的唯一标识符

来自分类Dev

生成简短的唯一标识符

来自分类Dev

Excel:创建唯一标识符

Related 相关文章

热门标签

归档