#ruby-on-rails-3 #model
#ruby-on-rails-3 #Модель
Вопрос:
Я пытаюсь написать метод, возвращающий значение true или false независимо от того, действительно ли продукт имеется на складе в определенном хранилище. Я хочу передать хранилище в качестве параметра, но получаю сообщение об ошибке через консоль. Какой правильный синтаксис?
def units_in_stock(storage)
storage_id = Storage.find_by_id(storage)
stocks.where("stock.storage_id = storage_id, in_stock > 0")
end
Комментарии:
1. В общем, когда что-то выдает ошибку, вы бы хотели сообщить нам, в чем заключается ошибка.
Ответ №1:
Это должно быть:
where("stock.storage_id=? and in_stock>0", storage_id)
Вы также могли бы использовать conditions
.
Комментарии:
1. Спасибо. Работает как шарм. Просто необходимо удалить лишний запас, поэтому правильный синтаксис в моем случае
where("storage_id=? and in_stock>0", storage_id)
Ответ №2:
Мне кажется, что вы передаете объект хранилища, поэтому вы должны быть в состоянии сделать что-то вроде этого:
def units_in_stock?(storage)
storage.stocks.where("in_stock > 0").exists?
end