0

Post属性を持つモデルがありますpublished_at。ただし、POST リクエスト API ではpublished、 ではなくとして割り当てる必要がありpublished_atます。したがって、私のモデルでは、セッターメソッドを次のようにオーバーライドします

def published=(value)
  self.published_at = value
end

問題は、API テストで、FactoryGirl のattributes_for(:post)メソッドを使用して POST 要求の属性を生成し、古いpublished_at名前を使用していることです。モデルでこの属性の名前を変更せずに、この問題を回避し、publishedキーを使用して属性を生成するにはどうすればよいですか?published_at

4

2 に答える 2

2

:post工場を変えてみませんか?

factory :post do
  published { Time.now }
  # published_at
end

または、API と Web ベースの投稿を分けたい場合は、新しいファクトリを作成します。

factory :api_post, class: Post do
  ...
end
于 2012-11-07T18:45:40.590 に答える
2

私はこれを自分で試したことはありませんが、エイリアスが機能するようです:

alias_attribute :published, :published_at

その場合、私はおそらく取り除くでしょうPost#published=

参考:https ://stackoverflow.com/a/4017071/199712

于 2012-11-07T18:53:27.103 に答える