gpt4 book ai didi

ruby-on-rails - 使用相同的字符串作为符号、实例变量和属性重构 Rails Controller 代码

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

我在 Controller 中有以下代码,我想知道将其重构为一个整体的最佳方法。

if @country
if s.address
s.address.country = @country
else
s.address = Address.create(:country => @country)
end
end

if @state
if s.address
s.address.state = @state
else
s.address = Address.create(:state => @state)
end
end

if @zip
if s.address
s.address.zip = @zip
else
s.address = Address.create(:zip => @zip)
end
end

如果这里有一种变体,我会做类似的事情

    [:country, :state, :zip].each do |location|
...
end

但在这种情况下,我使用的是 :country、.country 和 @country;有什么更好的方法来利用它们具有相同的“根”字符串?谢谢!

最佳答案

[:country, :state, :zip].each do |e|
if v = instance_variable_get("@#{e}")
if s.address
s.address.send(e) = v
else
s.address = Address.create(e => v)
end
end
end

关于ruby-on-rails - 使用相同的字符串作为符号、实例变量和属性重构 Rails Controller 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17584169/

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