如何在Ruby on Rails灯具YAML文件中为HStore字段设置默认值?

8 postgresql yaml ruby-on-rails hstore ruby-on-rails-4

我正在尝试使用PostreSQLRuby on Rails 4.0 HStore扩展.我想要一个我的HStore字段:

class Thing < ActiveRecord::Base
  # ...
  validates :field_name, presence: true
  # ...
end
Run Code Online (Sandbox Code Playgroud)

作为HStore的新手,我为Thing(rails g scaffold Thing field_name:hstore)生成了一个脚手架.这样做我的fixture文件(test/fixtures/things.yml)没有包含默认值field_name:

one:
  # ...
  field_name:
  # ...
Run Code Online (Sandbox Code Playgroud)

rake test由于没有为必填字段提供值,导致失败的原因.

我的问题是:如何在我的灯具YAML文件中设置一个值,field_name以便我的测试通过?

到目前为止,我知道:

  1. 不起作用:

    one:
      # ...
      field_name:
        small: 2
        medium: 5
        large: 4
      # ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这也不能正常工作:

    one:
      # ...
      field_name: {"small"=>"2", "medium"=>"5", "large"=>"4"}
      # ...
    
    Run Code Online (Sandbox Code Playgroud)

谢谢!

Ala*_*Tan 11

基本上你要做的就是在YAML中生成一个哈希

default:
  options:
    :something: 2
    :something_else: 3
Run Code Online (Sandbox Code Playgroud)


Bil*_*ill 10

我正在使用Rails 4,这是我的fixture文件,其中options是一个hstore字段.

default:
  title: 'something'
  prefix: 'xxx'
  options: '"something"=>"2", ""=>"5"'
Run Code Online (Sandbox Code Playgroud)

我无法找到如何正确使用哈希,所以我只是硬编码.