Похожие чаты

Вот так решил: def index if params[:key].present? && (short_url =

ShortUrl.get(params[:key]))
redirect_params = params.permit!.except("language", "special", "controller", "action", "key").to_h

path = URI.parse(short_url.value)
path.query = path.query + URI.encode_www_form(redirect_params)

short_url.view!
redirect_to path.to_s
else
redirect_to root_url
end
end

3 ответов

7 просмотров

Не совсем по делу, но я бы поменял index на show ещё :) мне кажется это семантически логичнее. Ещё я бы проверил не теряется ли там "&"

Александр-Черняк Автор вопроса
Ortemy Alexandrovich
Не совсем по делу, но я бы поменял index на show е...

Поправил так: def index if params[:key].present? && (short_url = ShortUrl.get(params[:key])) redirect_params = params.permit!.except("language", "special", "controller", "action", "key").to_h path = URI.parse(short_url.value) path.query = [path.query, URI.encode_www_form(redirect_params)].compact.join('&') short_url.view! redirect_to path.to_s else redirect_to root_url end end

Александр Черняк
Поправил так: def index if params[:key].present...

def index short_url = short_url_by_key(params[:key]) return redirect_to(root_url) if short_url.nil? path = generate_path(short_url) short_url.view! redirect_to path end def generate_path(short_url) path = URI.parse(short_url.value) path.query = [path.query, URI.encode_www_form(redirect_params)].compact.join('&') path.to_s end def short_url_by_key(key) return if key.nil? ShortUrl.get(key) end def redirect_params params.permit!.except("language", "special", "controller", "action", "key").to_h end

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

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
@LGCYMan @JustinKKW Q/A List 1. this part confuses me on #8: "From there, a bridge between erc20 LGXY and erc20 LGXY will be out once that swap is closed." does this mean ...
Sig | LGCY | BattleVerse L1 | BitWin
1
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Did @Beeker really get banned? That's ridiculous. He's one of the few left here with half a brain and you might not always like his narrative @dgb_ycagel , but he often keeps ...
Leroy Gerrits
1
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
How do I get FrxEth? Need it to execute a contract
Abdullah $BTON
18
Maine b!nance se wazirx mein 200$ deposit kiya and usdt/inr pair mein sell krdiya 1% tds kata and maine inr withdrawal krliya , ab usme 30% tax dena hoga kya?
Xanime
14
Карта сайта