【问题标题】:Ruby on Rails using existing database ID not working使用现有数据库 ID 的 Ruby on Rails 不起作用
【发布时间】:2017-11-13 16:06:03
【问题描述】:

我有一个使用现有数据库的 Ruby on Rails 应用程序。现有数据库有一个 id 字段,它是数据库中的自动增量主键,但 Ruby on Rails 似乎没有使用它,因为我收到 First argument in form cannot contain nil or be empty 错误

我的edit.html.erb是:

<%= form_for (@activevulnerabilities) do |f| %>
  <div class="row">
    <div class="col-xs-12">
      <div class="box">

        <div class="box-header">
          <h3 class="box-title">Edit Vulnerability Type</h3>
        </div>

        <div class="box-body">
          <%= render partial: 'admin/active_vulnerabilities/form', locals: { f: f } %>
        </div>

        <div class="box-footer">
          <%= link_to 'Cancel', active_vulnerabilities_path, class: 'btn btn-danger' %>
          <%= f.submit 'Submit', class: "btn btn-success" %>
        </div>

      </div>
    </div>
  </div>
<% end %>

我的控制器是:

class Admin::ActiveVulnerabilitiesController < ApplicationController
  layout :layout_by_resource
  def index
    @activevulnerabilities = ActiveVulnerability.all
  end

  def edit
    @activevulnerability = ActiveVulnerability.find(params[:id])
  end

  private def layout_by_resource
    if devise_controller?
      'layouts/devise'
    else
      'admin/layouts/admin'
    end
  end
  private def set_active_vulnerability
    @activevulnerability = ActiveVulnerability.find(params[:id])
  end
end

【问题讨论】:

    标签: mysql ruby-on-rails activerecord


    【解决方案1】:

    在您的编辑操作中,您正在设置@activevulnerability 变量,并且鉴于您正在尝试访问@activevulnerabilities 变量,即nil。修正变量命名,应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多