我正在尝试以表格格式显示所有指标,并带有一个编辑选项。但是,我最终遇到以下错误
在索引视图中,我可以查看所有数据。但是,当我单击“编辑”链接时,它并不会重定向到要显示不同列的编辑视图。
索引视图:
<%= 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
答案 0 :(得分:1)
您正在传递编辑路线的所有指标。从
移动<td id="EditButton"><%= link_to "Edit", edit_metric_path(@metricAll) %></td>
到
<td id="EditButton"><%= link_to "Edit", edit_metric_path(data) %></td>
data
是代码中的当前指标
答案 1 :(得分:0)
根据您的屏幕截图,该错误在模型内。
另外,正如其他人提到的,您应该删除那些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