this articleに記載されているように、私はフィクスチャに自動アソシエーションを使用しています。たとえば、地域オブジェクトに国IDがある場合、「country_id」を実行する代わりに:1、「country」:「USA」を実行します。 "USA"はcountries.ymlファイル内のラベルなので、備品はこれをどう扱うかを知っています。ただし、これは、countriesオブジェクトのID値を指定しない場合にのみ機能します。だから私はUSAのIDを1にすることはできません。しかし、私はそれを1に指定しなければ、いくらか大きな値8974343になります。これはちょっと変です。スーパーハイではないIDを自動的に生成するための備品を入手する方法はありますか? ....これは大丈夫ですか?ruby on rails fixturesの自動アソシエーション
18
A
答えて
21
APIドキュメントを読むと、これは自動生成されたフィクスチャが正しく動作すると思われます。フィクスチャの特定のID値をあらかじめ指定したい場合は、自分で割り当てる必要があります。
ない場合は、よく、APIドキュメントから:
The generated ID for a given label is constant, so we can discover any fixture‘s ID without loading anything, as long as we know the label.
3
治具のidは、我々限り、それは我々が何をロードせずに任意のフィクスチャのIDを発見することができますか」だ(その名をハッシュから直接来ますラベルを知る ")
23
13
私がコメントするのに十分な評判を持っていないので、これは実際のRails 4.1のドキュメントです:フィクスチャラベル補間の下
:
monkey_id: <%= ActiveRecord::FixtureSet.identify(:reginald) %>
pirate_id: <%= ActiveRecord::FixtureSet.identify(:george) %>
1
自動テストへ治具の完全性を強化する
class FixtureIntegrityTest < ActiveSupport::TestCase
context "fixture integrity" do
should "work" do
fixtures = Dir["test/fixtures/*.yml"].map do |file|
[file, File.basename(file).sub(/\..*/, "").singularize, YAML.load(ERB.new(File.read(file)).result)]
end
failures = fixtures.reject(&:last).map { |file,*| "#{file} is empty!"}
failures = failures.presence || fixtures.map do |_, klass, content|
content.select{ |_,fixture| fixture["id"] }.map do |name, _|
fixtures.map do |file, _, content|
content.select { |_,fixture| fixture[klass] == name }.map do |_, fixture|
"#{file} uses #{klass}: #{name}, but should use the id!"
end
end
end
end.flatten.compact
assert_equal [], failures
end
end
end
関連する問題
- 1. アソシエーションで検索するRuby on rails
- 2. Ruby on Rails自動文字エスケープ
- 3. Ruby on Railsのアソシエーションのタイプに応じた熱意
- 4. Ruby on Railsフォームの子アソシエーションを更新する
- 5. Ruby on Rails HABTMアソシエーションは結合テーブルを更新しません
- 6. Ruby On Rails - アソシエーションによる新しいモデルオブジェクト
- 7. Ruby on Railsアソシエーションを使用するか使用しないか
- 8. Windows上でRuby on Railsサーバーを自動的に起動する
- 9. Docsplit Ruby on Rails
- 10. Ruby on Rails - ジオコーダービュー
- 11. Ruby On Rails Application.html.haml
- 12. Ruby on Rails - show on new on
- 13. Ruby On Rails自己結合関連
- 14. 多対多自己参照ruby-on-rails
- 15. Ruby on Railsでの自動位置検出
- 16. Ruby on Railsページコントロール
- 17. RubyとRuby on Rails
- 18. Click on file - Ruby on Rails
- 19. Ruby on Railsルーティング
- 20. Ruby on Railsカスタムドメイン
- 21. ruby on railsグローバルメソッド
- 22. (ruby on rails)lib/
- 23. Ruby on Railsアプリケーション
- 24. Ruby on Railsカスタムハッシュルート
- 25. クエリ - Ruby on Rails
- 26. Ruby On Rails Javascript
- 27. Ruby on Railsシンプルフォームエラー
- 28. Geocoder Gem - Ruby On Rails
- 29. Ruby on Railsでテーブルエントリを自動的に生成
- 30. Ruby on Rails and Paperclip
なぜ人々は答えを受け入れるが、投票しないと思いますか? –