gpt4 book ai didi

ruby-on-rails - rails : Flatten array in parameter

转载 作者:行者123 更新时间:2023-12-04 06:48:35 24 4
gpt4 key购买 nike

我正在尝试为我的表单展平一个数组。

def update
@tour = Tour.find(params[:id])
params[:tour][:hotel_ids][0] = params[:tour][:hotel_ids][0].split(',')
...

这导致:
"hotel_ids"=>[["1","2"]]

我当然希望它是
"hotel_ids"=>["1","2"]

我的表格:
<%= text_field_tag 'tour[hotel_ids][]', nil %>

希望任何人都可以帮助解决这个问题。

编辑

我已经让它工作了,不知何故。不过,这可能是一个糟糕的方法:

我将获取数组的 text_field 从 jquery 更改为:
<%= text_field_tag 'tour[h_ids][]', nil %>

然后在我的 Controller 中我做了:
params[:tour][:hotel_ids] = params[:tour][:h_ids][0].split(',')

这有效,但我不得不将 h_ids 添加到 attr_accessor 。对于以后阅读编码器的任何人来说,这可能是一个很大的WTF……但这可以接受吗?

最佳答案

这是 ruby !

params[:tour][:hotel_ids][0].flatten!

应该做的伎俩!

ps:'!'在这里很重要,因为它会导致“展平”被保存到调用对象。

pps:对于那些与 ruby​​ 相关的问题,我强烈建议尝试使用 irb 脚本/控制台 .你可以拿走你的对象并要求
object.inspect
object.methods
object.class

这在调试和发现 ruby​​ 可以为您做什么时非常有用。

关于ruby-on-rails - rails : Flatten array in parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436391/

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