Как сделать Отправить/Перенаправить/Получить использование Sinatra?

create sequence serial start 1;

select * from comments c
join (select unnest(ARRAY[1,3,2,4]) as id, nextval('serial') as id_sorter) x
on x.id = c.id
order by x.id_sorter;

drop sequence serial;

[EDIT]

unsest еще не встроен в 8.3, но вы можете создать его самостоятельно (красота любого *):

create function unnest(anyarray) returns setof anyelement
language sql as
$$
    select $1[i] from generate_series(array_lower($1,1),array_upper($1,1)) i;
$$;

эта функция может работать в любом типе:

select unnest(array['John','Paul','George','Ringo']) as beatle
select unnest(array[1,3,2,4]) as id
26
задан John Topley 28 April 2010 в 17:18
поделиться

2 ответа

Перенаправление в Синатре является наиболее простым в использовании.

Таким образом, приведенный ниже код может объяснить:

require 'rubygems'
require 'sinatra'

get '/' do
  redirect "http://example.com"
end

Вы также можете перенаправить на другой путь в вашем текущем приложении, как этот, хотя этот пример удалит метод.

delete '/delete_post' do
  redirect '/list_posts'
end

Очень распространенное место, где используется эта инструкция перенаправления, находится под Аутентификацией

def authorize!
  redirect '/login' unless authorized?
end

Вы можете увидеть больше примеров в:

Руководство Синатра

FAQ

Расширения

Что касается вашего второго вопроса, передавая переменные в представления, это возможно так:

get '/pizza/:id' do
  # makeing lots of pizza
  @foo = Foo.find(params[:id])
  erb '%h1= @foo.name'
end
54
ответ дан Rapptz 28 November 2019 в 06:42
поделиться

Книга Синатра должна прояснить ваш вопрос. Особенно часть « Redirect ».

Цитата из книги:

Перенаправление фактически отправляет обратно заголовок Location в браузер, и браузер делает последующий запрос в указанное местоположение. Поскольку браузер делает этот последующий запрос, вы можете перенаправить на любую страницу в своем приложении или на другой сайт целиком.

Поток запросов во время перенаправления следующий: Браузер -> Сервер (перенаправление на '/') -> Браузер (запрос '/') -> Сервер (результат для '/')

6
ответ дан 28 November 2019 в 06:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: