Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在FactoryGirl factory中设置名为before和after的模型属性?_Ruby On Rails_Ruby On Rails 4_Factory Bot - Fatal编程技术网

Ruby on rails 如何在FactoryGirl factory中设置名为before和after的模型属性?

Ruby on rails 如何在FactoryGirl factory中设置名为before和after的模型属性?,ruby-on-rails,ruby-on-rails-4,factory-bot,Ruby On Rails,Ruby On Rails 4,Factory Bot,我有一个带有前后属性的模型 class CreateMyModel < ActiveRecord::Migration def change create_table :my_model do |t| t.text :before t.text :after end end end 它显然不能满足我的要求,因为它设置了回调 有没有办法设置属性的值 更新: 它还没有经过测试,但我想我已经找到了解决方案: factory :my_m

我有一个带有前后属性的模型

class CreateMyModel < ActiveRecord::Migration
  def change
    create_table :my_model do |t|
      t.text    :before
      t.text    :after
    end
  end
end
它显然不能满足我的要求,因为它设置了回调

有没有办法设置属性的值

更新:

它还没有经过测试,但我想我已经找到了解决方案:

factory :my_model, :class => 'MyModel' do |f|
    f.add_attribute :before, 'some before text'
end

它在另一个模型中使用:方法,所以我认为它在这里也一定有效。

您可以这样做:

FactoryGirl.define do
  factory :my_model, :class => 'MyModel' do |f|
    f.before 'some before text'
    f.after  'some after text'
  end
end

希望我能帮忙。

我知道这不是你问题的重点,但你可以省略
:class=>“MyModel”
。FactoryGirl将根据工厂名称推断类名。很抱歉反应太晚。我试过了,但没有成功。看来我已经找到了解决办法(更新部分问题)。
FactoryGirl.define do
  factory :my_model, :class => 'MyModel' do |f|
    f.before 'some before text'
    f.after  'some after text'
  end
end