синтаксис рельсов метода модели

#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