Как вы переводите следующий запрос Active Record в raw postgresql?Преобразование инструкции ActiveRecord в postgresql query- Rails 4/postgresql 9.4
Я просто хочу, чтобы преобразовать строку с '@available_deal = Deal где ...
приложение/контроллеры/deals_controller.rb
def show_deals_available
@deal = Deal.friendly.find params[:id] # no need to turn this into postgresql
@available_deal = Deal.where('deal_id = ? AND deal_status = ?',
@deal.id, "not_yet_taken").first
respond_to do |format|
format.js
end
end
EDIT благодаря обратной связи
Я пошел на моей локальной консоли и скопировал/вставил запрос в мои файлы и просто заменил номер моими переменными вроде (@ deal.id)
Итак, теперь у меня есть:
приложение/контроллеры/deals_controller.rb
def show_deals_available
@deal = Deal.friendly.find params[:id] # no need to turn this into postgresql
@available_deal = Deal.where('deal_id = ? AND deal_status = ?',
@deal.id, "not_yet_taken").first
@available_deal = SELECT "deals".* FROM "deals" WHERE (deal_id = @deal.id AND deal_status = 'not_yet_taken') ORDER BY "deals"."id" ASC LIMIT 1
respond_to do |format|
format.js
end
end
Но я получаю сообщение об ошибке:
SyntaxError - syntax error, unexpected tCONSTANT, expecting keyword_end
...ROM "deals" WHERE (deal_id = @deal.id AND ...
... ^
/deals_controller.rb:70: syntax error, unexpected tCONSTANT, expecting ')'
..." WHERE (deal_id = @deal.id AND deal_status = ...
... ^
....
Да, вставив кусок SQL в кучу кода Ruby. Ничто не может пойти не так, верно? ;) Какова конечная цель, которую вы преследуете? –
узнайте больше sql и перейдите на raw sql прямо внутри моего контроллера – Mathieu
Я нашел метод rails find_by_sql, возможно, я могу попробовать это, но это похоже на «real ra sql» или это все еще активная запись, которая будет меньше жиров, чем настоящий raw sql. извините новобранец здесь. – Mathieu