小编And*_*ros的帖子

如何在工厂中保存局部变量

我有这个例子

FactoryGirl.define do
  @site = FactoryGirl.create(:my_site)
  factory :user do
    email               { Faker::Internet.email }
    first_name          { Faker::Name.first_name }
    last_name           { Faker::Name.last_name }
    password            { 'TarXlrOPfaokNOzls2U8' }
    active_directory    { '0' }
    companies           { [FactoryGirl.create(:company, site: @site)] }
    sites               { [@site] }
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法用let或者东西实现这个目的......

FactoryGirl.define do
  factory :user do
    email               { Faker::Internet.email }
    first_name          { Faker::Name.first_name }
    last_name           { Faker::Name.last_name }
    password            { 'TarXlrOPfaokNOzls2U8' }
    active_directory    { '0' }
    companies           { [FactoryGirl.create(:company, site: FactoryGirl.create(:my_site))] }
    sites               { [FactoryGirl.create(:my_site)] }

  end
end
Run Code Online (Sandbox Code Playgroud)

这有效,但它创建了两个my_site,这是一个Site对象,但我需要它们是相同的...任何想法如何实现这一点

ruby-on-rails factory-bot

9
推荐指数
2
解决办法
4735
查看次数

Ruby从范围创建一个特定的数组

我想知道如何使用ruby中的范围生成以下数组

["00","00","01","01","02", "02", ...... "10", "10"]
Run Code Online (Sandbox Code Playgroud)

我想重复每个元素两次,这就是我正在寻找答案的部分.我可以生成如下单个元素

("00".."10").to_a
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用循环等来做到这一点,但我正在寻找一个更简单的一行代码

谢谢

ruby

6
推荐指数
2
解决办法
4052
查看次数

宏观中的双斜线评论替代

我正在开发一个符合ansi标准的编译器(Microchip XC8)上的PIC MCU程序.有两种操作模式,在编译期间通过宏确定.所以我不想因为一行代码而复制一个类似函数的宏,我想知道是否有任何方法可以编写宏如

#define FOO //
Run Code Online (Sandbox Code Playgroud)

这样当FOO被替换时,它实际上将取消该线的其余部分.

编写函数而不是宏是不可能的,因为函数调用产生的延迟会破坏程序的紧密时序(大约几微秒).

c macros conditional-compilation pic c-preprocessor

2
推荐指数
2
解决办法
1497
查看次数