Рельсы маршрут для кнопки - PullRequest
2 голосов
/ 04 октября 2011

Я новичок в рельсах, и вопрос о маршрутах сбивает меня с толку.

На одной из моих страниц у меня есть форма. В этой форме я разрешаю пользователю заполнить некоторую необходимую информацию и нажать кнопку «отправить».

Я получаю:

No route matches {:action=>"inventory_test", :controller=>"test_types"}

У меня есть действие в контроллере test_type для «инвентаризации».

Моя путаница заключается в том, что маршруты, кажется, определяются в соответствии с моделью REST, такой как / Users / edit / 1. Это нормально, но как создать маршруты для таких вещей, как кнопки?

Я могу быть наивным, но, похоже, я попытался настроить маршрут в виде:

match 'some/url' => 'controller#action'

тогда я по сути определяю действие для всей страницы. Как определить действия для элементов на странице?

Когда эта кнопка нажата, я хочу вызвать действие в контроллере. Я ищу:

match "submit_button" => 'test_types#inventory_test'

Я понимаю, что, вероятно, неправильно понимаю парадигму, поэтому любое образование очень ценится.


Код: (Обратите внимание, что я еще не тестировал код формы, но, надеюсь, вы поняли идею)

index.html.haml

%div

  %table
    %caption 
      Inventory Tests
      %form
        Inventory Run: %input {:type => 'text', :name=>'inventory_run'}
        Inventory Class: %input {:type => 'text', :name=>'inventory_class'}
        =button_to "Run Inventory Test", :action => 'inventory_test';

1 Ответ

0 голосов
/ 04 октября 2011

Если вы отправляете обычную форму, это должно помочь

Маршрут соответствия '/ url' => "test_types # inventory_test" должен работать нормально.

<%= form_for(@user, :url => "/url") do |f| %>
  "Put your form code here"
  <%= f.submit "Submit" %>
<% end %>

Возврат назад, если есть какие-либо запросы.

Отредактировано согласно опубликованному коду

%form{ :action => "inventory_test", :method => "post"}

    %label{:for => "inventory_run"} Inventory Run:
    %input{:type => "text", :name => "inventory_run"}

    %label{:for => "inventory_class"} Inventory Class:
    %input{:type => "text", :name => "inventory_class"}

%input{:type => "submit", :value => "Submit"}

Просто проверьте, он должен работать для вас, но я не пробовал с ним

...