【发布时间】:2021-12-16 13:04:21
【问题描述】:
我正在使用 Rails 4.2、Ruby 2.3.8 和 factory girl 4.5.0。我有这个带有别名属性的模型
class User
include ActiveModel::Model
…
alias customer_name full_name
end
我有这个对应的FactoryGirl工厂
FactoryGirl.define do
factory :user do
id { rand(83800..83999) }
…
full_name “My “name
customer_name { full_name }
…
skip_create
initialize_with { new(attributes) }
end
end
我从另一家工厂跑
user: create(:user)
然后我得到这个错误
NoMethodError:
undefined method `customer_name=' for #<User:0x0000000009f0fd58>
Did you mean? customer_name
抱怨
initialize_with { new(attributes) }
用户工厂的生产线。在工厂中定义别名属性的正确方法是什么?
【问题讨论】:
-
我认为问题出在你的模型上。
alias customer_name full_name可以,但是你还需要定义一个#customer_name=方法(赋值方法)
标签: ruby-on-rails ruby rspec alias factory