2017-02-22 53 views
0

Мне нужно создать уникальную ссылку, так что, когда пользователь нажимает на нее, они попадают на какую-то страницу/action. Однако они не могут перейти непосредственно на эту страницу/action, просто набрав простой адрес в адресной строке.Как создать уникальную ссылку на какую-либо страницу?

Как это можно достичь в Rails?

+1

Просто любопытно, что это за дела для этого? Обычно, если вы хотите ограничить информацию, это обычно обрабатывается с помощью какой-либо системы входа/аутентификации. – the12

+1

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

+0

вы можете добавить некоторый параметр в URL-адрес, который вы отправляете, и если у человека, входящего в него, есть этот токен, тогда отобразите страницу, иначе перенаправите их где-нибудь еще – SomeSchmo

ответ

0

Вы всегда можете использовать что-то вроде базы данных токенов и срок действия этого токена.

# url 
url/items?token=12345 

def index 
    token = Token.find_by_token(params[:token]) 
    if token && token.expiry > Time.now 
    #do something 
    else 
    redirect_to root_url 
    end 
end 
+0

Downvote, потому что сам вопрос не является действительным вопросом SO. Недостаточно информации, чтобы дать правильный ответ, и никакая попытка, по-видимому, не была предпринята ОП, чтобы попытаться решить проблему. –

+0

@CarlMarkham Что делать, если я не знаю, как ее реализовать? –

+1

Обновлено. Однако, если вы уже используете Devise, вы можете использовать [Devify confirmable] (https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb) – Shannon