Вашият проблем е тук:
WHERE "reviews"."trip_id" = 32
и съобщението за грешка казва, че:
значи сте създали своя trip_id
колона в reviews
като низ, а не като цяло число. Това ще работи добре в SQLite, защото системата от типове на SQLite е доста свободна, но няма да работи в PostgreSQL, тъй като PostgreSQL е доста по-строг.
Можете да опитате да добавите миграция, за да коригирате типа на trip_id
:
def change
change_column :reviews, :trip_id, :integer
end
и ако това не работи, пуснете и създайте отново таблицата:
def change
drop_table :reviews
create_table :reviews do |t|
#...
t.integer :trip_id
#...
end
end
Можете също така да направите ALTER TABLE чрез необработен SQL, ако имате данни, които искате да запазите, и change_column
не работи:
def change
execute %q{
alter table reviews
alter column trip_id
type int using cast(trip_id as int)
}
end
Това трябва да работи в PostgreSQL (но не и в SQLite), стига да нямате повредени данни във вашия trip_id
.
След като сте решили това, трябва да инсталирате PostgreSQL и да превключите вашата среда за разработка към това. Разработването върху SQLite и внедряването в PostgreSQL (или разработването върху една база данни и внедряването върху която и да е друга база данни за този въпрос) е лоша идея и ще ви причини всякакви скръб и объркване.