gpt4 book ai didi

Ruby send(attribute.to_sym) for Rails 方法

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

我使用的是 Ruby 1.9.2,需要遍历表格的所有值以确保所有内容均采用 UTF-8 编码。有很多列,所以我希望能够使用 column_names 方法循环遍历它们并将值编码为 UTF-8。我认为这可能有效:

def self.make_utf
for listing in Listing.all
for column in Listing.column_names
column_value_utf = listing.send(column.to_sym).encode('UTF-8')
listing.send(column.to_sym) = column_value_utf
end
listing.save
end

return "Updated columns to UTF-8"

end

但它返回一个错误:

syntax error, unexpected '=', expecting keyword_end
listing.send(column.to_sym) = column_value_utf

我不知道如何让它正常工作。

最佳答案

您正在使用 send错了,你为你想做的事情发送了错误的符号:

listing.send(column + '=', column_value_utf)

您正在尝试以 column_value_utf 作为参数调用 x= 方法(对于某些 x),这就是 o.x = column_value_utf 通常会这样做。因此,您需要构建正确的方法名称(只需一个字符串即可),然后将该方法的参数作为参数发送到 send

关于Ruby send(attribute.to_sym) for Rails 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7466334/

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