PG :: DatatypeMismatch: ОШИБКА: аргумент WHERE должен иметь тип boolean, а не тип integer - PullRequest
0 голосов
/ 30 января 2019

Я получаю эту ошибку на сайте производства, и это код в моих представлениях

<%= form_for [:admin, @course], :remote => true do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <%= f.label :duration %> 
  <%= f.number_field :duration, class: "input-md form-control mb-20"%> 
  <%= f.label :program_id %> 
  <%= f.collection_select :program_id, Program.where('id'), :id, :name, {}, {class: "input-md form-control mb-20" } %>
<%end%>

Это работает на моем локальном сервере, где у меня есть настройка sql db.

Program model
     has_many :courses 

Кто-нибудь может направить меня?

1 Ответ

0 голосов
/ 30 января 2019

Там, где в предложении ничего не нужно сравнивать, PG не знает, что включить в результаты.Предложение where должно иметь значение true / false.

просто замените

<%= f.collection_select :program_id, Program.where('id'), :id, :name, {}, {class: "input-md form-control mb-20" } %>

на

<%= f.collection_select :program_id, Program.all, :id, :name, {}, {class: "input-md form-control mb-20" } %>

Если у вас возникли проблемы с некоторыми данными Программы в ваших данныхbase, добавьте столбец как статус в таблицу программ и внесите здесь изменения как

<%= f.collection_select :program_id, Program.where("status =?", true), :id, :name, {}, {class: "input-md form-control mb-20" } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...