0

尝试创建表单时出现以下错误,undefined method 'model_name' for NilClass:Class

我的这个项目是为了捕捉我的想法。我可以使用谷歌文档,但认为这应该很容易尝试为自己编写应用程序。下面是我认为应该来自我在 newopp.html.erb (在我的 opps 视图文件夹中)的简单表单站点上阅读的代码。

我创建了一个控制器和一个模型,我确信我的问题的一部分是我无法弄清楚我需要编写什么代码或添加什么代码才能正确完成此步骤。我看过的所有教程都给了我一些想法,可以尝试并尝试使工作无济于事。

所以基本上我坐在一个名为 opps_controller.rb 的 rails 生成的控制器和一个名为 opp.rb 的模型上。这两个都不过是生成器提供的,因为我不得不回到第一格

我开始使用的简单表单代码

<%= simple_form_for @opp do |f| %>
  <%= f.input :title %>
  <%= f.input :subtitle %>
  <%= f.input :description %>
  <%= f.input :idea %>
  <%= f.input :added %>
  <%= f.button :submit %>
<% end %>

opp.rb 文件

class Opp < ActiveRecord::Base
  attr_accessible :added, :description, :idea, :subtitle, :title
end

如果有什么不同,我已经迁移了数据库,我使用引导配置运行了简单的表单安装脚本。我正在使用rails 3.2.9ruby 1.9.3p362(2012-12-25 修订版 38607)[x86_64-darwin12.2.1]

正如我提到的,我只有一个使用生成器创建的空白控制器,我需要让 CRUD 功能正常工作。在这一点上,我尝试过的一切都失败了。感谢您提供的任何帮助。

4

1 回答 1

1

不应该newopp.html.erb,只是new.html.erb。所以路径是/views/opps/new.html.erb

如果您仍然收到错误,请确保@opp在控制器中定义:

class OppsController < ApplicationController
  def new
    @opp = Opp.new
  end

  def create
    @opp = Opp.new
    if @opp.update_attributes(params[:opp])
      ...
    else
      render 'new'
    end
  end
end
于 2013-03-26T01:45:43.500 回答