gpt4 book ai didi

ruby-on-rails - 如何使用 Ruby on Rails 将字符串转换为数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:40 24 4
gpt4 key购买 nike

我有一个接受字符串值的文本字段,例如

"games,fun,sports"

我的主要目标是获取字符串并将其转换为这样的数组:

[games, fun, sports]

在我拥有的集成对象的过滤器属性中。现在我开始使用一种似乎不起作用的方法。

这是我的代码:

查看:

  <%= form_for @integrations, url: url_for(:controller => :integrations, :action => :update, :id => @integrations.id) do |f| %>
<%= f.label :filters %>
<%= f.text_field :filters, class: "filter-autocomplete" %>
<%= f.submit "Save" %>
<% end %>

这是接收字符串的文本字段。

型号:

def filters=(filters)

end

这是我想从字符串切换到数组的地方。

Controller :

 def update
@integrations = current_account.integrations.find(params[:id])

if @integrations.update_attributes(update_params)
flash[:success] = "Filters added"
redirect_to account_integrations_path
else
render :filters
end
end

def filters
@integrations = current_account.integrations.find(params[:id])
end

private

def update_params
[:integration_webhook, :integration_pager_duty, :integration_slack].each do |model|
return params.require(model).permit(:filters) if params.has_key?(model)
end
end

那么,回顾一下:我有一个集成模型,它接受一串过滤器。我想要一种将字符串分解为过滤器属性元素的方法。

这是我要添加过滤器的对象:

对象:

 id: "5729de33-befa-4f05-8033-b0acd5c4ee4b",
user_id: nil,
type: "Integration::Webhook",
settings: {"hook_url"=>"https://hooks.zapier.com/hooks/catch/1062282/4b0h0daa/"},
created_at: Mon, 29 Aug 2016 03:30:29 UTC +00:00,
owner_id: "59d4357f-3210-4ddc-9cb9-3c758fc1ef3a",
filters: "[\"Hey\", \"ohh\"]">

如您所见,filters 是我要修改的内容。而不是对象中的这个:

"[\"Hey\", \"ohh\"]"

我想要这样:

[Hey, ohh]

最佳答案

不清楚你在追求什么,但一般来说,当你有一个像这样的字符串时:

"games,fun,sports"

您可以使用 split(',') 将其以逗号分隔并将其转换为字符串数组:

"games,fun,sports".split(',') # => ["games", "fun", "sports"]

如果您收到一个 JSON 编码的字符串数组,它看起来像:

'["games", "fun", "sports"]'

又名:

'["games", "fun", "sports"]' # => "[\"games\", \"fun\", \"sports\"]"

它可以很容易地返回到 Ruby 字符串数组:

require 'json'

JSON['["games", "fun", "sports"]'] # => ["games", "fun", "sports"]

关于ruby-on-rails - 如何使用 Ruby on Rails 将字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com