сначала при добавлении метода к классу String вам необходимо обратить вспять сам строковый объект (поэтому @var1.reverse
становится self.reverse
)
также когда вы делаете puts "#{@var1}"
, вы можете сделать puts @var1
, но это напечатает переменную в логгере sinatra (обычно это STDOUT)
puts
само вернет nil
, а sinatra выведет строковое значение nil ""
, и вы ничего не увидитев браузере (пустая страница), вот рабочий пример:
require 'sinatra'
class String
def mymethod
self.reverse
end
end
get '/' do
erb :index
end
post '/' do
params[:post][:message].mymethod
end
__END__
@@index
<form action="/" method="post">
<input type="text" name="post[message]">
<input type="submit">
</form>
вот несколько рубиновых книг:
http://mislav.uniqpath.com/poignant-guide/ - говорящие лисы - потрясающее чтение:)
http://ruby -doc.org / docs / ProgrammingRuby / - также потрясающее чтение