Пытаюсь сделать кнопку. Когда вы щелкнете по нему, должно появиться модальное окно с формой.
Я создал кнопку:
<li>
<%= link_to content_tag(:i, nil, class: "fa fa-plus") + " New Rule",new_rule_correlation_engine_rule_path, class: "pull-right panel-button", 'data-toggle' => "modal", 'data-target' => "#new_rule_correlation_engine_rule_modal", "data-backdrop" => "static" %>
</li>
И в routes.rb я определил первый маршрут (часть ресурсов уже была там):
get 'correlation_engine_rules/new_rule' => 'correlation_engine_rules#new_rule', as: 'new_rule_correlation_engine_rule'
resources :correlation_engine_rules do
post :apply, on: :collection
end
Я также создал файл с именем new_rule с регистратором в начале, чтобы знать, загружается ли он. Очевидно, когда я нажимаю кнопку, он загружает этот файл, потому что я вижу регистратор, но затем я получаю эту ошибку:
<ActionController::UrlGenerationError: No route matches {:action=>"show", :controller=>"correlation_engine_rules"} missing required keys: [:id]>
Итак, маршруты совпадают с моей первой строкой, но кажется, что это я также пытаюсь выполнить метод show, я думаю, из-за строк ресурсов ниже моей. Сначала у меня был маршрут ниже этой части, затем я увидел эту ошибку и поставил ее перед, как указано в руководстве по рельсам маршрутизации, но я все равно получаю эту ошибку. Я думал, что когда 1 маршрут совпадает, он перестанет искать больше, может я ошибаюсь, но я не понимаю, в чем проблема. Спасибо.
решение: я наконец решил эту проблему, введя новый маршрут внутри блока ресурсов, например:
resources :correlation_engine_rules do
post :apply, on: :collection
get :new_rule, on: :collection
end
, а затем я вызываю его как new_rule_correlation_engine_rules_path.