gpt4 book ai didi

ruby-on-rails - 保持代码干燥的方法

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

我有一个项目创建表单,它创建了一个新项目,其中我将参数作为这 3 个属性的数组,我需要使用 join 方法将其转换为带有“,”的字符串,我是执行以下操作:

@project.trackers = @project.trackers.join(',') if !@project.trackers.nil?
@project.modules = @project.modules.join(',') if !@project.modules.nil?
@project.custom_fields = @project.custom_fields.join(',') if !@project.custom_fields.nil?
@project.repository = @project.repository.join(',') if !@project.repository.nil?

因为我对所有变量使用相同的逻辑,所以我想创建一个方法来传递一些参数并在一行中执行此操作。

任何好的建议都会很有帮助。

尝试过:

array = ['trackers','modules','custom_fields','repository']
joiner(array) #method call

def joiner(args)
args.each do |param|
if !param.nil?
@project.param = @project.param.join(',')
# Stuck how to convert param string
end
end
end

最佳答案

拯救元编程:

%w(trackers modules custom_fields repository).each do |field| 
@project.send("#{field}=", @project.send(field.to_sym).join(',')) if @project.send(field.to_sym)
end

更新

有一个very good book如果您想像专业人士一样解决此类问题。

关于ruby-on-rails - 保持代码干燥的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24429502/

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