Rails - Обновить действие с новым значением в параметрах - PullRequest
3 голосов
/ 21 марта 2012

У меня есть следующее отношение в моей модели:

У пользователя может быть несколько потребителей

В соответствии с этим я вызываю несколько действий с разных контроллеров, которые зависят от этого consumer_id в URL. Итак, я делаю такие вещи, как:

/:consumer_id/products/all
/:consumer_id/locals/all?params...

Я хочу иметь возможность, учитывая, что я нахожусь в особом представлении, скажем, / 3 / products / all, чтобы иметь возможность обновлять, перенаправлять или, как лучше, / 4 / products / all, с формой, которая показывает различных потребителей, прикрепленных к этому пользователю.

Я знаю, как отобразить форму, но не вижу, какое действие я должен выполнить, учитывая, что я хочу загрузить текущий контроллер, текущее действие и текущие параметры, за исключением того, что я хочу изменить параметры [ : consumer_id] и сеанс [: consumer_id] для выбранного пользователем в виде представления.

Какой лучший или подходящий способ сделать это?

Ответы [ 3 ]

2 голосов
/ 23 августа 2012

Это ссылка на ту же страницу с теми же параметрами и одним дополнительным параметром:

<%= link_to "Show more results", url_for(params.merge(:per => 100)) %>

Если вы хотите изменить параметр, а не добавить новый, вы можете изменить хэш параметров простокак вы бы изменили любой хэш и снова использовали url_for.

2 голосов
/ 21 марта 2012

Внутри вида вы можете получить доступ как к текущему контроллеру, используя controller_name, так и к текущему действию, используя action_name

0 голосов
/ 21 марта 2012

Ваш вопрос не ясен.Вы хотите выбрать customer_id в своей форме, а затем использовать этот идентификатор потребителя на той же странице или для ссылок на другие страницы?

Если вы хотите использовать идентификатор потребителя для текущей страницы, вам нужно использовать javascript илиJQuery для обновления всех атрибутов текущей страницы.

Если вы хотите использовать этот идентификатор потребителя для ссылок,

  • , вы также можете использовать JQuery для обновления всех ссылок на своей странице
  • Или вы можете отправить форму на сервер с новым customer_id.
...