【问题标题】:Loop through hash in rails遍历rails中的哈希
【发布时间】:2021-07-09 19:37:09
【问题描述】:

我有一些功能,我的客户可以创建自定义字段,我现在要做的是循环访问这些数据,但我似乎无法让它工作。

这里是我们创建或更新记录时的参数,我删除了一些,因为我只是想循环遍历custom_fields_attr

Parameters: {... "custom_fields_attr"=>{"1"=>"testing12", "2"=>"", "3"=>"", "4"=>""}}, ...}

我有以下代码:

<!-- start of custom fields -->
<% if Contact.has_custom_fields %>
  <div class="form-block">
    <h2 class="txt-title-alt">Custom Fields</h2>

    <% Contact.custom_fields.in_groups_of(2).each do |field| %>
      <div class="l-row-block clearfix">
        <% field.each do |item| %>
          <div class="l-06col l-ml-12col l-md-12col">
            <div class="field field_display l-row-block clearfix">
              <p class="like_p clearfix">
                <strong class="l-06col">
                  <%= item.label %>:
                </strong>
                
                <span class="value l-06col">
                  <%= item.value %>
                </span>
              </p>
            </div>
          </div>
        <% end %>
      </div>
    <% end %>
  </div>
<% end %>
<!-- end of custom fields -->

我有一个自定义字段表,我们从中获取标签,但我需要从 custom_fields_attr 哈希中获取值

编辑 @contact.custom_fields_attr 的输出是

>> @contact.custom_fields_attr
=> {"1"=>"test field123"}

【问题讨论】:

    标签: ruby-on-rails ruby hash ruby-on-rails-5


    【解决方案1】:

    不要做field.each do |item| 试试field.each do |key, value|。这使您可以访问块中每个哈希对的keyvalue

    【讨论】:

    • 我似乎无法从custom_fields_value 表中获取值,标签来自custom_fields
    【解决方案2】:

    你能告诉我Contact.custom_fields的输出是什么吗?

    你能告诉,客户端是如何创建自定义字段的,因为如果它们是发送到控制器的参数,你可以访问控制器中的参数,在这种情况下你想要“custom_fields_attr”,你可以通过参数调用它["custom_fields_attr"] 然后循环遍历它 params["custom_fields_attr"].each do |key, value| 每次调用 key = "1" 和 value = "testing12" 然后 key = "2" 和 value = "" 等等。

    【讨论】:

    • 错误是因为params["custom_fields_attr"] 为nil,所以你必须先询问它是否与if params["custom_fields_attr"] 一起存在,以便首先查看是否正在发送带有该密钥的参数。
    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 2016-04-21
    • 2022-07-21
    • 2013-11-25
    • 2016-04-12
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多