Контекстно-зависимая модель по умолчанию в Rails из link_to - PullRequest
1 голос
/ 26 января 2010

Что является стандартом для применения значений по умолчанию к моделям Rails из ссылок? Вот ситуация:

В Spree существует модель ProductGroup, представляющая собой набор настроек, определяющих, как найти продукт (на основе набора значений свойств, которые вы установили). Я хочу иметь возможность использовать эту структуру для определения общих групп товаров:

  • Продукты для мероприятий
  • Подписные товары
  • Билеты
  • Пожертвования ...

Так что, если я нахожусь на странице «Создать событие», и пользователь нажимает «Создать заявки», я хочу, чтобы он перенес их на страницу «Группы товаров», чтобы они могли создать новую группу товаров для этого события, скажем «My Cool Событие Продукты ".

Я хочу сделать это как можно проще, без необходимости переопределять / расширять контроллеры / модели. Решение, которое я подумываю об использовании, состоит в том, чтобы передать хэш :defaults из метода link_to в виде в контроллер, например:

<%= link_to "Create Event-related Products", new_admin_product_group_url(:defaults => {:name => "Event Name and Date: " + Time.now.to_s}) %>

Теперь я могу написать общий плагин, который просто применяет к модели любые свойства внутри params[:defaults] в контроллере.

Есть ли что-то подобное там? Или есть лучший / рекомендуемый способ сделать это, возможно, с определением пользовательского типа product_groups_with_event_defaults_url? Или, может быть, что-то делать с request.env['HTTP_REFERER'], хотя это не очень надежно.

Суть в том, что я все еще хочу красивые URL, поэтому ничего из этого:

<a href="http://localhost:3000/admin/commerce/product_groups/new?defaults%5Bname%5D=Event+Name+and+Date%3A+Mon+Jan+25+21%3A03%3A05+-0700+2010" rel="nofollow noreferrer">http://localhost:3000/admin/commerce/product_groups/new?defaults%5Bname%5D=Event+Name+and+Date%3A+Mon+Jan+25+21%3A03%3A05+-0700+2010</a>

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