2012-02-22 5 views
0

Итак, я только начал использовать динамические сегменты, поскольку мне нужно, чтобы они определяли определенные элементы для захвата данных из AWS S3 через HTTParty.Rails Маршрутизация с динамическими сегментами

У меня это заявление матча в моем routes.rb файл:

match ':installation/:venue/:controller(/:action(/:id))' 

Это прекрасно работает и позволяет мне делать то, что я хочу сделать, что тянуть в установке и месте и использовать их с HTTParty, чтобы получить соответствующую информацию от S3.

Теперь мне нужно, чтобы мои ссылки были постоянными, как из-за того, что мой контроллер приложений читает их. Так, например, когда я пишу link_to, мне нужно было сделать следующее в представлении/частичном:

<%= link_to some_name, 
"#{@installation}/#{@venue}/#{controller.controller_name}/show/some_id" %> 

Если бы это было просто уродство, с которым мне пришлось иметь дело, это не было бы проблемой, но я не понимаю, как я могу обойти варианты в отношении этого.

В принципе, есть способ иметь находчивые маршруты для динамических сегментов?

ответ

1

Вы можете использовать polimorphic_url http://apidock.com/rails/ActionDispatch/Routing/PolymorphicRoutes/polymorphic_url

+0

Это, кажется, именно то, что мне нужно, так что большое спасибо за указание на это. Я никогда не сталкивался с этим, когда гулял. Но когда я реализую это с помощью этой ссылки: link_to menu_item.title, polymorphic_url ([@ installation, @venue, PoiList, 'index']),: url_options => {: map_button => map_button} Я получаю следующую ошибку: неопределенный метод 'SPREE_SPREE-2012_poi_lists_url 'для # <# <Класс: 0x8f1c0cc>: 0x8f1b08c>. Что означает, что нет находчивого маршрута, правильно? Итак, как мне создать находчивые маршруты для случая соответствия, мой вопрос, я думаю? – Gowiem

+1

Ваши полные маршруты.rb? – eveevans

+0

Я закончил тем, что понял это, я просто установил свой оператор матча так: match ': installation /: meeting /: controller (/: action (/: id))',: as =>: default Который дал мне находчивые маршруты, которые я хотел. Еще раз спасибо за помощь. – Gowiem

Смежные вопросы