在rails中link_to“编辑”面临的问题

时间:2018-11-13 13:17:53

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试以表格格式显示所有指标,并带有一个编辑选项。但是,我最终遇到以下错误

enter image description here

在索引视图中,我可以查看所有数据。但是,当我单击“编辑”链接时,它并不会重定向到要显示不同列的编辑视图。

索引视图:

<%= 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

2 个答案:

答案 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