Come descritto in this article, sto usando le associazioni automatiche nei dispositivi. Ad esempio, se un oggetto regione ha un ID paese, invece di fare "country_id": 1, faccio "country": "USA". "USA" è un'etichetta nel mio file countries.yml, quindi le fixture sanno come prendersene cura. Tuttavia, questo funziona solo quando non si specifica un valore ID per l'oggetto Paesi. Quindi non posso assegnare l'ID USA ad essere 1. Ma se non lo assegno ad essere 1, finisce per essere un grande valore 8974343 ... che è piuttosto strano. C'è un modo per ottenere proiettori per auto-generare id che non siano super-alti? .... o è ok?Associazioni automatiche in ruby su dispositivi di binari
risposta
Leggendo la documentazione dell'API, questo è esattamente il modo in cui si suppone che i dispositivi autogenerati si comportino - se si desidera avere un valore ID specifico per una fixture in anticipo, probabilmente si dovrebbe semplicemente assegnarlo da soli.
caso contrario, beh, dalla documentazione 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.
id del proiettore, viene direttamente da hashing suo nome (che è come "possiamo scoprire ID qualsiasi apparecchio senza caricare qualsiasi cosa, finché siamo conoscere l'etichetta ")
Ecco come si ottiene un id autogenerato dell'etichetta dell'apparecchio.
Fixtures.identify(:reginald)
Dato che questo articolo SO mi ha aiutato molto, vorrei dare un aggiornamento per Rails 4.1.0.rc1: <% = ActiveRecord :: FixtureSet.identify (: reginald)%> – Chris
Ho dovuto includere la classe che il etichetta di riferimento. http://ruby-journal.com/rails/define-fixtures-with-polymorphic-association/ – Shadoath
Dal momento che non ho abbastanza fama di commentare, questo è il Rails attuali 4.1 documentazione:
Sotto Fixture etichetta interpolazione:
monkey_id: <%= ActiveRecord::FixtureSet.identify(:reginald) %>
pirate_id: <%= ActiveRecord::FixtureSet.identify(:george) %>
test automatizzati per imporre l'integrità del dispositivo
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. binari stringhe in Ruby 2.0
- 2. var_dump e muore come php, in ruby on rails (eseguire il debug in ruby su binari)
- 3. come cercare attraverso le associazioni nei binari 4
- 4. Ruby on Rails: 4.2.0 differenze tra binari e binario/binari
- 5. Quali sono i possibili motivi per la corruzione di file binari su dispositivi Android
- 6. Etichette multilinea automatiche in Graphviz?
- 7. collegamento Ruby a Mysql senza binari
- 8. Caricamento immagine su binari
- 9. Parentesi automatiche complete in Mathematica
- 10. Binari ARM in esecuzione per Android su Linux ARM
- 11. IndexOutOfBoundsException su dispositivi Samsung
- 12. Matrice di associazioni in Java
- 13. Associazioni di test unità di rotaie
- 14. Supporto dei dispositivi mobili in Ruby on Rails
- 15. Associazioni polimorfiche di brace
- 16. asset_url in mailer su binari 3.1
- 17. Lettura/scrittura su file binari in C
- 18. Ottieni righe dati automatiche
- 19. Ignora wrapper su associazioni con simple_form
- 20. L'invio di dati binari su http
- 21. Migrazioni EF: RenameColumn in Migrazioni automatiche?
- 22. Dati binari su terminale seriale
- 23. Come fa Ruby a gestire i byte/binari?
- 24. Elevazione su dispositivi pre-L?
- 25. Monitoraggio di applicazioni su più binari
- 26. Operatori di confronto binari su tipi generici
- 27. alberi di ricerca binari in rubino
- 28. Le proprietà automatiche non funzionano in C#
- 29. Prestazioni automatiche dell'array di lunghezza variabile C99
- 30. Passaggio parametri in binari redirect_to
Perché secondo voi le persone accettano le risposte ma non le votano? –