vladchernik
@vladchernik
system analyst | developer

Сохранение данных с клиента на сервер на Ruby?

Добрый день!

Прошу совета или, возможно, даже примера реализации, если такой у кого имеется.
Вопрос достаточно прост (и наверное туп), но я не смог найти на него ответа из-за засилья Rails. Как бы я не составил поисковый запрос, я натыкаюсь на мануалы по ActiveRecord-a и его "друзьям".

Собственно, вопрос мой в следующем: как передать данные с клиента (например, значения с формы, заполненные пользователем) на сервер, чтобы уже сервер сохранил данные в БД? Сервер без Rails, но с Ruby.

Простыми словами: у меня есть form.html с инпутами и формами, у меня есть calc.rb с определенным алгоритмом расчёта полученных значений и их сохранением в БД. Как мне связать эти файлы?

Я понимаю, что вопрос дилетантский, прошу меня за это простить.
Заранее спасибо за любую помощь.
  • Вопрос задан
  • 283 просмотра
Решения вопроса 2
  1. Отображение формы клиенту, GET
  2. Клиент заполняет форму и отправляет запрос, POST
  3. сервер обрабатывает параметры с формы и выводит результат в другой странице. Ждёт "дальнейших указаний" от пользователя (опционально).


1. Установка минималистичного фреймворка SinatraRb
gem install sinatra

2. Файл Gemfile в корне проекта
source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
#gem 'haml'
#gem 'sqlite3'

и выполняем в командной строке команду
bundle install
(gem bundler - управление зависимостями gem - должен быть заранее установлен)

3. Файл config.ru в корне проекта
# config.ru (run with rackup)
require 'rubygems'
require 'bundler/setup'

Bundler.require

require './myapp.rb'
run Sinatra::Application


4. Файл myapp.rb в корне проекта
require 'sinatra'

get '/' do
  erb :index # Отобразить форму по пути views/index.erb. Erb - это код HTML с вкраплениями кода на Ruby
end

post '/do_it'
  "Thank you, #{params['name']}!"
end


5. views/index.erb
<form action="/do_it" method="post">
    <div>
        <label for="name">Your Name:</label><br>
        <input type="text" name="name"><br>
    </div>
    <button type="submit">Submit</button>
</form>


Дополнительно
Accessing the Request Object

Для работы с СУБД есть ещё простой гем DataMapper
Ответ написан
AMar4enko
@AMar4enko
Отсюда начните
https://gist.github.com/markbates/4240848

Rack это нижний уровень, на котором построены все web-фреймворки на Ruby.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы