J'ai deux modèles: CallDetail et Agent. La table agents utilise la clé étrangère de la table call_details.Impossible de créer une entrée dans la base de données en utilisant la fonction de création à partir du contrôleur.
Le schéma est collé ci-dessous.
ActiveRecord::Schema.define(version: 20170824171227) do
create_table "agents", force: :cascade do |t|
t.integer "agent_id"
t.string "name"
t.integer "CallDetail_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["CallDetail_id"], name: "index_agents_on_CallDetail_id"
end
create_table "call_details", force: :cascade do |t|
t.integer "call_id"
t.string "word"
t.float "start_time"
t.float "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
Dans le schéma de base de données ci-dessus, en plus des attributs représentés rails par défaut crée des attributs CallDetail ID et ID de l'agent.
Mon contrôleur Agents créer la fonction ressemble à la
def create
@agent = Agent.new(agent_params)
respond_to do |format|
if @agent.save
format.html { redirect_to @agent, notice: 'Agent was successfully created.' }
format.json { render :show, status: :created, location: @agent }
else
format.html { render :new }
format.json { render json: @agent.errors, status: :unprocessable_entity }
end
end
end
Mes modèles suivants sont donnés ci-dessous
class CallDetail < ApplicationRecord
end
class Agent < ApplicationRecord
belongs_to :CallDetail
end
Quand j'ouvre localhost: 3000/agents et essayer de créer une nouvelle entrée dans la base de données l'erreur suivante est affichée.
SQLite3 :: SQLException: aucune table de ce type: main.CallDetails: INSERT INTO "agents" ("agent_id", "nom", "CallDetail_id", "created_at", "updated_at") VALEURS (?,?,? ,?,?)
Je suis nouveau sur les rails. Que fais-je incorrectement ici? S'il vous plaît aider.
Votre application est-elle connectée à la base de données et possède-t-elle ces tables? vérifier à partir de 'rails console', puis entrez' ActiveRecord :: Base.connection.tables' – sa77
oui il semble être connecté, la sortie dans la console lit => ["schema_migrations", "ar_internal_metadata", "call_details", " agents "] @ sa77 – AndEnthu
Comment avez-vous créé l'association entre agents et call_details? – hashrocket