Rails Secret URLs - PullRequest
       2

Rails Secret URLs

1 голос
/ 25 декабря 2010

Я пытаюсь сделать регистрационное приложение Rails необязательным.Для простоты, скажем, это вставка (также может быть что-то вроде сокращения URL).Я хочу, чтобы каждая вставка была доступна с двух URL-адресов: один с доступом только для чтения для совместного использования с другими и один с правами редактирования для первоначального создателя вставки.

До сих пор я пытался сделать это, создав дваключи в моей модели вставки:: show_id,: edit_id

У меня есть метод, который запускает обратный вызов before_validation: on => create, который генерирует эти две случайные строки для этих ключей.

Я установилвверх по некоторым маршрутам, чтобы '/ s / show_id' и '/ e /: edit_id' переходили к соответствующим контроллерам.

Теперь я хотел бы иметь вспомогательные методы маршрутизации 'resources' (например: paste_path,edit_paste_path) указывают на эти URL, а не по умолчанию.Кажется, однако, что мне нужно переопределить метод to_param, чтобы сделать это, но я не уверен, как я могу получить его для правильного вывода: show_id или: edit_id.

1 Ответ

1 голос
/ 26 декабря 2010

Переопределение to_param не сработает, поскольку предполагается, что запись имеет один идентификатор.Я бы попробовал переопределить paste_path и edit_path_path самостоятельно.Что-то вроде ...

module ApplicationHelper
  def paste_path(paste)
    "/s/#{paste.show_id}"
  end

  def edit_paste_path(paste)
    "/e/#{paste.edit_id}"
  end
end 

Обратите внимание, что это будет обрабатывать простейший вариант использования.Возможно, вы захотите обработать дополнительные параметры в помощниках, а также обработать paste_url или обработать что-то вроде url_for ([: edit, paste]) и т. Д., Но это то, с чего я бы начал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...