Ich versuche ein Objekt 'Besuch' von Json von AJAX gesendet zu erstellen. Hier ist das Modell:ActiveRecord Objekt mit Nullwerten erstellt
class Visit < ApplicationRecord
serialize :number, JSON
serialize :time_spent, JSON
end
und hier ist die Migrationsdatei:
class CreateVisits < ActiveRecord::Migration[5.0]
def change
create_table :visits do |t|
t.integer :number
t.integer :time_spent
t.timestamps
end
end
end
Ich habe eine Aktion Show genannt, die das folgende Skript enthält:
var start;
$(document).ready(function() {
start = Date.getTime();
$(window).unload(function() {
end = Date.getTime;
$.ajax({
type: 'POST',
dataType: 'json',
url: "/log",
data: { visit: { 'number': <% @number %>,'time_spent': end - start} }
})
});
}
die Zeit zu messen ausgegeben Die Seite. Die Route für '/ log' ist:
get '/log', to: 'home_page#log', :defaults => { format: 'json' }
und home_page # log ist:
def log
@visit = Visit.new(visit_params)
respond_to do |format|
if @visit.save
format.json { render json: @visit.to_json }
end
end
end
wo visit_params ist:
private
def visit_params
params.require(:visit).permit(:number, :time_spent)
end
Wenn ich navigieren Sie zu/log, ich erhalte ein Fehler, der besagt, dass der Besuchsparameter fehlt oder leer ist.
EDIT:
Ich reparierte den Fehler in der Route, so dass es jetzt statt bekommen Post ist. In Terminal wird jedoch keine Nachricht eines gespeicherten Besuchs protokolliert.
Ich tat dies, aber keine Besuchsobjekte wurden gespeichert – genghiskhan