Я создаю приложение пользовательского интерфейса, у которого нет моделей, нет базы данных. Он использует вызовы веб-сервиса для всей своей бизнес-логики. У меня невероятно трудное время, чтобы завершить маршрутизацию. У меня все еще есть объекты вроде workstations
. Я объявил в моих routes
resource :workstations
, что дает мне эти маршруты:Могу ли я использовать маршруты ресурсов без базы данных (без идентификаторов)
workstations POST /workstations(.:format) workstations#create
new_workstations GET /workstations/new(.:format) workstations#new
edit_workstations GET /workstations/edit(.:format) workstations#edit
GET /workstations(.:format) workstations#show
PUT /workstations(.:format) workstations#update
DELETE /workstations(.:format) workstations#destroy
, но когда я пытаюсь связать с действием обновления как = link_to "Update", workstations_path, :method => :put
я No route matches {:controller=>"workstations", :method=>"put"}
. Разве это не тот маршрут, который указан для действия обновления?
Мне интересно, не могу ли я использовать традиционные находчивые маршруты, так как у меня нет ids
. Или, может быть, я просто делаю это неправильно.
Просмотр кода (Haml):
%h2
%small#application-name-label Technical Support Interface
.col-md-3
%h3 Workstations
%button.btn.btn-success.create-button Create Workstation
- if @workstations.blank?
.no-items-available There are no workstations to display
-else
= form_tag(controller: "workstations", action: "delete_history_and_queue", method: "post") do
%table#workstation-table.table.table-striped.table-hover.table-bordered
%thead
%tr
%th#table-header Name
%th#table-header Delete History
%th#table-header Delete Queue
%th#table-header Update
%th#table-header Delete
%tbody
- @workstations.each do |workstation|
%tr
%td
= workstation[:name]
%td
= check_box_tag 'delete history', form_class: "checkbox"
%td
= check_box_tag 'delete queue', form_class: "checkbox"
%td
= link_to "Update", workstations_path, :action => :update
%td
= link_to "Delete", workstations_path, :action => :destroy
= submit_tag
.col-md-3
%h3 Data Sources
%button.btn.btn-success.create-button Create Data Source
- if @data_sources.blank?
.no-items-available There are no sources to display
-else
%table.table.table-striped.table-hover.table-bordered
%tr
%th#table-header Type
%th#table-header Name
- @data_sources.each do |data_source|
%tr
%td
= data_source[:type]
%td
= data_source[:name]
HTML
<body>
<div class='whole-page'>
<div class='container'>
<h1 class='hero-unit' id='application-title'>
<div class='row-fluid'>
<div class='span1' id='replication-server'>
<img alt="Cog_logo" src="/assets/cog_logo.png" />
<img alt="Crs" src="/assets/crs.png" />
Replication Server
</div>
</div>
</h1>
</div>
</div>
<h2>
<small id='application-name-label'>Technical Support Interface</small>
</h2>
<div class='col-md-3'>
<h3>Workstations</h3>
<button class='btn btn-success create-button'>Create Workstation</button>
<form accept-charset="UTF-8" action="/?method=post" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="NQghiooSVtSngRU7K170uxhqJ2N6i9XQ6sP5W+UeKrY=" /></div>
<table class='table table-striped table-hover table-bordered' id='workstation-table'>
<thead>
<tr>
<th id='table-header'>Name</th>
<th id='table-header'>Delete History</th>
<th id='table-header'>Delete Queue</th>
<th id='table-header'>Update</th>
<th id='table-header'>Delete</th>
</tr>
</thead>
<tbody>
<tr>
<td>
consequatur
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
quia
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
quod
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
reprehenderit
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
laborum
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
quidem
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
laboriosam
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
<tr>
<td>
non
</td>
<td>
<input id="delete_history" name="delete history" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<input id="delete_queue" name="delete queue" type="checkbox" value="{:form_class=>"checkbox"}" />
</td>
<td>
<a href="/workstations" action="update">Update</a>
</td>
<td>
<a href="/workstations" action="destroy">Delete</a>
</td>
</tr>
</tbody>
</table>
</form>
<input name="commit" type="submit" value="Save changes" />
</div>
<div class='col-md-3'>
<h3>Data Sources</h3>
<button class='btn btn-success create-button'>Create Data Source</button>
<table class='table table-striped table-hover table-bordered'>
<tr>
<th id='table-header'>Type</th>
<th id='table-header'>Name</th>
</tr>
<tr>
<td>
CIDNE
</td>
<td>
http://block.com/keaton_baumbach
</td>
</tr>
<tr>
<td>
DCGS
</td>
<td>
http://wolff.info/jace_rice
</td>
</tr>
</table>
</div>
</body>
</html>
Итак, теперь я получаю «Действие« показать »не удалось найти для WorkstationsController, который, по-моему, является прогрессом. Мне не нужно действие 'show', поэтому я не уверен, откуда это происходит. Просто для здравомыслия, вы не * имеете * для осуществления действия, просто потому, что маршрут определен или вы? Я предполагаю, что это неверное истолкование «workstations_path», но это не кажется правильным. –
Вы получили бы эту ошибку, если бы попытались «GET» на '/ workstations', и у нее нет метода контроллера для ее обработки. Если вы этого не хотите, вы можете исключить его из сгенерированных маршрутов так: 'resource: worksstations, except: [: show]' –
Я ввел исключение, и теперь я получаю «Нет совпадений маршрута [GET]»/Рабочие станции "' –