Ich habe eine Join-Tabelle für eine hat viele und gehört zu vielen durch, die Join-Tabelle mit vielen anderen Attributen hat einen Zeitstempel, Implementierung weise gibt es keine Probleme ,Fehler mit Minitest bekommen, wenn ich einen Zeitstempel für einen habe durch viele gemeinsame
Benutzer
class User < ApplicationRecord
has_many :affiliations
has_many :organizations, through: :affiliations
end
Organisation
class Organization < ApplicationRecord
has_many :affiliations
has_many :users, through: :affiliations
end
Zugehörigkeit
class Affiliation < ApplicationRecord
belongs_to :user
belongs_to :organization
has_many :xxxxxs
end
Affiliation speichert nicht nur das gehört, es hält selbst Informationen wie der Rang des Benutzers und was nicht in der Organisation ist. Es ist so ziemlich ein starkes eigenes Modell.
Für Armaturen, ich habe nicht eine Datei für die jointable noch
user.yml
user1: email: [email protected] organizations: org1
organization.yml
org1 name: foo
aber wenn ich laufen Tests mit Minitest, es gibt mir einen Fehler.
Error:
PublicControllerTest#test_should_get_index:
ActiveRecord::StatementInvalid: Mysql2::Error: Field 'created_at' doesn't have a default value: INSERT INTO `affiliations` (`user_id`, `dominion_id`) VALUES (794918725, 299359653)
Seltsame ist, kommt es auf Tests, die nicht einmal die der Tisch nicht verwenden,
class PublicControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
end
end
Aktion absolut nichts an dieser Stelle seine einfach nur html
class PublicController < ApplicationController
def index
end
end
tut nichts in der Steuerung.
Sie gehen weg, wenn eine Zeitstempel entfernen, aber die Aufnahme, wenn die Verknüpfung erstellt wurde, ist die notwendige Information. Muss ich bei den Tests etwas tun?
Ich verwende Rails Edge (5.0.0rc1) Gibt es eine Chance, dass dies die Fehler verursacht?
Könnten Sie den Test von Minitest setzen, die die Fehler produziert? Und vielleicht genaue Linie, die es verursacht? –
Auch - funktioniert die Erstellung des gleichen gemeinsamen Datensatzes in Ihrem "normalen" Rails-Code? I.e. ist der Fehler nur für Minitest-Ausführung und nicht für anderen Code? –
hinzugefügt Modelle, vollständige Fehler, tatsächliche Test und der Controller, den es testet, und ja, als Code im Projekt, funktioniert die ganze Sache ohne irgendein Problem – Saifis