Как сделать шаблон для путей Rails - PullRequest
0 голосов
/ 10 октября 2019

В своем приложении я добавил несколько маршрутов для определенных действий к различным объектам:

  resources :business_rules do
      resources :breaches
      member do
        post :new_version
        post :make_current
        post :finalise
        post :activate
      end
      collection do
        get :index_all
      end
  end

Который я достигаю благодаря кнопке:

<%= button_to t('MakeCurrent'), make_current_business_rule_path(@business_rule.id), class: "buttons mid_menu" %>

Это многократно используется для 12объекты и 4 кнопки, поэтому я хочу вставить эту панель действий в частичную часть и вызывать ее в каждом из 12 представлений представления, соответственно для каждого целевого объекта. Но как я могу создать make_current_ target_object _path?

Спасибо за вашу помощь

Ответы [ 2 ]

2 голосов
/ 10 октября 2019

Используйте полиморфные помощники маршрута в Rails вместо именованных помощников маршрута.

На самом деле вы уже использовали их, если когда-либо делали link_to 'Show', @thing или form_for @thing.

 link_to("Text", [:make_current, @object], method: :post)
 # or
 button_to("Text", [:make_current, @object], method: :post)

См. Создание путей и URL-адресов из объектов .

0 голосов
/ 10 октября 2019

Я думаю, вы можете добавить вспомогательный метод к вашему application_controller:

helper_method :generate_path

def generate_path(action, target):
    send [action, target, 'path'].join('_')
end

И использовать его так:

<%= button_to t('MakeCurrent'), generate_path('make_current', 'buisness_rule'), class: "buttons mid_menu" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...