Я пытаюсь отобразить все показатели в формате таблицы с возможностью редактирования. Но я получаю ошибку ниже
В режиме индекса я могу видеть все данные. Но когда я нажимаю ссылку редактирования, это не перенаправляет на вид редактирования, где у меня отображаются разные столбцы.
просмотр индекса:
<%= form_for :metrics_controller, url: metrics_path(@metric), method: :get do |f| %>
<table id = "metrics">
<thead>
<tr id = "AllMetricColumnNames">
<th id = "CommentsColumn">Comments</th>
<th id = "EditColumn">Edit</th>
</tr>
</thead>
<% @metricAll.each do |data| %>
<tr id = "AllMetricValues">
<td id = "Comments"><%= data.Comments %></td>
<td id = "EditButton"><%= link_to "Edit", edit_metric_path(@metricAll) %></td>
<% end %>
</tr>
</table>
<% end %>
Контроллер:
class MetricsController < ApplicationController
def index
@metricAll = Metric.all
end
def show
@metric = Metric.find(params[:id])
end
def edit
@metric = Metric.find(params[:id])
end
private def post_params
params.require(:metric).permit(:Metric, :Comments)
end
end
маршруты:
root 'metrics#index'
get 'index' => 'metrics#index'
get 'edit' => 'metrics#edit'
resources :metrics
🤔 А знаете ли вы, что...
Ruby on Rails имеет встроенную поддержку для кеширования, что способствует улучшению производительности приложения.
Вы передаете ВСЕ метрики для маршрута редактирования. Двигаться из
<td id = "EditButton"><%= link_to "Edit", edit_metric_path(@metricAll) %></td>
к
<td id = "EditButton"><%= link_to "Edit", edit_metric_path(data) %></td>
data
- текущая метрика в вашем коде
Судя по вашему скриншоту, ошибка находится в пределах модели.
Кроме того, как упоминалось другими, вам следует удалить эти маршруты get
, так как resources :metrics
будет генерировать необходимые маршруты для всех ваших действий CRUD, a.ka. для index, show, edit, new, create, update, destroy
.
Я предполагаю, что файл metric.rb
имеет отношение belongs_to :automated_thresholding
, но в таблице базы данных metrics
отсутствует поле automated_thresholding_id
.
Вы должны создать миграцию, чтобы добавить это поле
add_reference :metrics, :automated_thresholding