Dit problem er her:
WHERE "reviews"."trip_id" = 32
og fejlmeddelelsen siger, at:
så du har oprettet dit trip_id
kolonne i reviews
som en streng snarere end som et heltal. Det vil fungere fint i SQLite, fordi SQLites typesystem er ret løst, men det vil ikke fungere i PostgreSQL, da PostgreSQL er en del strengere.
Du kan prøve at tilføje en migrering for at rette typen trip_id
:
def change
change_column :reviews, :trip_id, :integer
end
og hvis det ikke virker, så slip og genskab tabellen:
def change
drop_table :reviews
create_table :reviews do |t|
#...
t.integer :trip_id
#...
end
end
Du kan også lave en ALTER TABLE gennem rå SQL, hvis du har data, som du vil bevare og change_column
virker ikke:
def change
execute %q{
alter table reviews
alter column trip_id
type int using cast(trip_id as int)
}
end
Det burde fungere i PostgreSQL (men ikke SQLite), så længe du ikke har ødelagte data i dit trip_id
.
Når du har ordnet det, bør du installere PostgreSQL og skifte dit udviklingsmiljø til det. At udvikle oven på SQLite og implementere til PostgreSQL (eller udvikle oven på én database og implementere oven på en hvilken som helst anden database for den sags skyld) er en dårlig idé og vil forårsage alle mulige former for sorg og forvirring.