Смущает 'откликнуться' против ответить на?'
Я учусь рельсы с railstutorial.org, и я в замешательстве о чем-то:
в эта глава автор говорит нам сделать некоторые испытания в консоли с respond_to? метод на объекте пользователя, и он работает нормально. Но позже, когда мы напишем тест для 
3 ответа:
Руби лечит
?и!как фактические символы в имени метода.respond_toиrespond_to?разные.?указывает, что должны ответить true или false (условно; это не является обязательным требованием). В частности:
respond_to?это Рубин метод для определения того, имеет ли класс определенный метод на нем. Например,@user.respond_to?('eat_food')вернет true, если
Userкласс имеетeat_foodметод.
respond_toэто рейлинги метод для ответа на определенные типы запросов. Например:def index @people = Person.find(:all) respond_to do |format| format.html format.xml { render :xml => @people.to_xml } end endоднако, в железнодорожном сообщении, которое вы предоставили, вы видите RSpec метод
shouldвзаимодействие с RSpec этоrespond_toметод. Это не будет доступно в консоли, если вы не запуститеrails console test.
respond_to?является логической оценкой. Элементrespond_toиспользуется (обычно) для определения отображаемой информации. подробнее здесь. Элементrespond_to?проверяет, существует ли метод и возвращает true, если это так, и false, если это не так.
тест использует удобные помощники, чтобы быть более удобным для пользователя.
Рубин-это Рубин, поэтому используйте старый добрый
respond_to?будет работать, если вы называете это так:@user.respond_to?(:encrypted_password).should be_trueесть еще
respond_toиспользуется в контроллерах, но еще не имеет ничего общего с тем, кого вы уже встречали.