Кажется, я не совсем понимаю инициализацию или использование класса внутри другого класса.Неопределенный метод для класса - Sinatra
У меня есть приложение Синатры и создал класс для обработки выборки данных из апи
# path: ./lib/api/bikes/bike_check
class BikeCheck
def self.check_frame_number(argument)
# logic here
end
end
BikeCheck.new
то у меня есть еще один класс, который должен потреблять/использовать метод check_frame_number
require 'slack-ruby-bot'
# Class that calls BikeCheck api
require './lib/api/bikes/bike_check'
class BikeCommands < SlackRubyBot::Bot
match /^Is this bike stolen (?<frame_number>\w*)\?$/ do |client, data, match|
check_frame_number(match[:frame_number])
client.say(channel: data.channel, text: @message)
end
end
BikeCommands.run
Когда check_frame_number
называется i получить ошибку undefined method
. То, что я хотел бы знать, - это то, что основная вещь я не делаю/понимаю, подумал я, требуя, чтобы файл, который имеет класс, он будет доступен для использования.
Любая помощь приветствуется
Благодаря
спасибо за очистку, что вверх. Есть ли предпочтительный способ, так что модуль или вызов класса, как вы указали? – Richlewis
Обычно это зависит от ситуации, я использую и то, и другое. Но здесь, если вы определили 'BikeCheck' только для того, чтобы содержать метод, который вы хотите использовать в' BikeCommands', он определенно квалифицируется как случай использования модуля вместо этого. –
еще раз спасибо, когда inlcuding/extension я могу просто вызвать метод по имени тогда? – Richlewis