8

PostreSQL にRuby on Rails 4.0 HStore 拡張機能使用しようとしています。HStore フィールドの 1 つを必須にしたいと思います。

class Thing < ActiveRecord::Base
  # ...
  validates :field_name, presence: true
  # ...
end

HStore は初めてなので、Thing ( rails g scaffold Thing field_name:hstore) の scaffold を生成しました。これを行うと、フィクスチャ ファイル ( test/fixtures/things.yml) には のデフォルト値が含まれていませんでしたfield_name:

one:
  # ...
  field_name:
  # ...

rake test必須フィールドに値が指定されていないため、失敗します。

field_name私の質問は次のとおりです。テストが合格するように、フィクスチャ YAML ファイルに値を設定するにはどうすればよいですか?

これまでのところ、私は知っています:

  1. これは機能しません:

    one:
      # ...
      field_name:
        small: 2
        medium: 5
        large: 4
      # ...
    
  2. これも機能しません:

    one:
      # ...
      field_name: {"small"=>"2", "medium"=>"5", "large"=>"4"}
      # ...
    

ありがとう!

4

2 に答える 2

11

基本的に、YAML でハッシュを生成する必要があります。

default:
  options:
    :something: 2
    :something_else: 3
于 2014-12-02T12:47:45.660 に答える