我有一个带有Post
属性的模型published_at
。
但是,在POST请求API中,要求将其指定为published
,而不是published_at
。
所以在我的模型中,我重写了setter方法,如此
def published=(value)
self.published_at = value
end
问题是,在我的API测试中,我使用FactoryGirl的attributes_for(:post)
方法为POST请求生成属性,并使用旧的published_at
名称。如何在不更改模型中此属性的名称的情况下解决此问题并使用published
键而不是published_at
生成属性?
答案 0 :(得分:2)
如何更改:post
工厂:
factory :post do
published { Time.now }
# published_at
end
或者,如果要分离基于API和Web的帖子,请创建一个新工厂:
factory :api_post, class: Post do
...
end
答案 1 :(得分:2)
我自己从未尝试过,但似乎别名可能有效:
alias_attribute :published, :published_at
在这种情况下,我可能会摆脱Post#published=
。