Rails 3 Прикрепление идентификатора модели к каждой ссылке - PullRequest
0 голосов
/ 05 марта 2011

Мое приложение сосредоточено вокруг события и, в частности, его идентификатора.Всякий раз, когда пользователь переходит на разные разделы (контроллеры) сайта, мне необходимо иметь при себе идентификатор события.

Я предполагаю, что включение идентификатора события в URL является предпочтительным методом напользователь открывает несколько окон браузера.

Я не хочу вручную добавлять идентификатор события к каждой ссылке.Есть ли вспомогательный метод, который я мог бы создать, чтобы сделать это для меня?

Спасибо

Ответы [ 3 ]

2 голосов
/ 05 марта 2011

Вам необходимо создать вложенный ресурс в вашем файле маршрутов, это добавит что-то вроде "/ event / # eventid" в начало вашего пути. Затем вы можете получить доступ к этому с ваших контроллеров с помощью params[:event_id]

например:

routes.rb

resources :events do
  # Other controllers routes go here
end

controller_whatever.rb

def index
  @whatever = Event.find(params[:event_id]).whatever.all
end

...

Очевидно, что было бы лучше использовать фильтр before, но вы поняли идею.

0 голосов
/ 05 марта 2011

Рекомендую использовать решение Томасфедба.Если по какой-либо причине это невозможно, вы можете сделать это, переписав метод url_for, как в этом вопросе

0 голосов
/ 05 марта 2011

Вы должны сохранить это в данных сеанса:

session[:event_id] = event_id

После этого вы сможете получить к нему доступ в течение сеанса пользователя.

UPDATE

Возможно, вы захотите взглянуть на вложенных ресурсов .

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