исправление для MySQL запроса рельсов - PullRequest
1 голос
/ 06 января 2012

При выполнении запроса MySQL ниже в rails

cnt = Domainurl.find_by_sql ["SELECT Max(`count`)FROM `domainurls` WHERE `domaindetail_id`= ?",@domain.id]
urlcr=Domainurl.find_by_sql ["SELECT * FROM `domainurls` WHERE `domaindetail_id` = ? AND `count` = ?",cnt.count]
urlcr.each do |cr|
  puts cr.url
end

Я получаю ошибку:

"error is: undefined method `closed?' for nil:NilClass"

Я немного слаб в MySQL, Кто-нибудь может мне помочь исправить мою ошибку?:)

Спасибо:)

1 Ответ

2 голосов
/ 06 января 2012

проблема в вашем последнем запросе

urlcr=Domainurl.find_by_sql ["SELECT * FROM `domainurls` WHERE `domaindetail_id` = ? AND `count` = ?",cnt.count]

вы пытаетесь найти что-то по 2 параметрам (domaindetail_id и count), но вы предоставляете только count.(вы также должны предоставить domaindetail_id)

urlcr=Domainurl.find_by_sql ["SELECT * FROM `domainurls` WHERE `domaindetail_id` = ? AND `count` = ?",@domain.id, cnt.count] #observe that I added @domain.id

Вы можете переписать это как

cnt = Domainurl.where(:domaindetail_id => @domain.id).maximum(:count) # this returns a number
urlcr=Domainurl.where("domaindetail_id = ? AND count = ?", @domain.id, cnt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...