- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个项目创建表单,它创建了一个新项目,其中我将参数作为这 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/
我有几个链接和 div,我希望它们具有相同的功能。基本上,您单击一个链接/按钮/任何选择的触发器,相应的空间幻灯片就会打开。 标记看起来像... First Second Third 到目前为
我正在尝试使用数据提供程序对多个输入运行 Jasmine 测试。为此,我尝试使用以下链接使用 jasmine-data-provider 包: http://blog.jphpsf.com/2012/
我有一个脚本,可以将用户的输入传递到completed.html 页面上,但这里有两个问题: 所有用户输入都显示在地址栏上,我想隐藏它,但我不想使用 POST 方法,这会破坏我的 JS 脚本的用途。有
DRY(不要重复自己) 假设我在我的应用程序中经常使用此代码: observable$.pipe( tap(value => console.log(value)), map(value =>
这是我正在运行的 MySQL 查询: -- get the sid of every supplier who does not supply both a red and green part SE
下面的内容可以干一点吗? if(totals[label]) { totals[label] += increment; } else { totals[label] = increm
我有这个,而且效果很好: $(document).delegate("tr.updating input, tr.updating a, tr.updating label", 'click', fu
我有一个在程序中广泛使用的简单 C++ 结构。现在我希望将结构作为单个字段保存在 sqlite 数据库中(现在不是作为 blob)。 将struct的属性映射到数据库列有什么好的方法? 最佳答案 由于
在下面的测试中,Bar 和 Baz block 包含相同的规范。 首先撇开为什么需要这样的重复不谈,我想知道如何才能把它干掉。 我尝试将 block 转换为对象并在 Bar 和 Baz 下调用它们,但
很抱歉我的菜鸟问题,但我有一个适用于大型形式的特定领域的函数。我知道我可以对每个可能的字段进行硬编码,但我想让我的代码保持干燥。我可以做什么来将这种独特的功能添加到表单中的每个字段中。 (它们都共享一
我正在用 java 编写一个程序,它本质上测试了很多东西...... 对于每次调用,我都需要检查 NullPointerExceptions、StackOverflow、IndexOutOfBound
我有一个冗长的组件,它传递了许多 Prop 。有没有更干燥的方式将该组件传递给 child ? 谢谢。 let products; if (!this.state.loading) { produ
我有许多 Angular Controller ,其中包含以下代码块(包括一些我无法分解的更具体的内容)。 {{title}} 我希望以最符合 Angular 主义的方
我正在尝试使用 jasmine 测试一些 View 代码。我需要在 View 对象处于不同的包含状态时测试某些元素的存在,而不必在每个状态下重复大量代码。 我有 NodeView 类,它表示具有一些端
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 带来的便利! 但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法
EasyMock 测试似乎倾向于遵循以下模式: @Test public void testCreateHamburger() { // set up the expectation Easy
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我有一个重复比较,我必须检查三个变量是否等于某个变量。为简单起见,我将创建一个场景来说明我遇到的问题。 if time == -1 and day_of_week == -1 and month ==
我已经在 Spring listA 中进行了配置(见下文)。最好有另一个包含 listA 中的所有值并展开它的。 a b
我有一个函数当前正在 JavaScript 中使用 .getElementBy... DOM 调用。 var $ = function (selector) { var elements = []
我是一名优秀的程序员,十分优秀!