在rails starter项目中使用Simple Form时出现问题

时间:2013-03-25 22:48:25

标签: ruby-on-rails simple-form

尝试创建表单undefined method 'model_name' for NilClass:Class

时出现以下错误

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

我创建了一个控制器和一个模型,我确定我的问题的一部分是我无法弄清楚我需要编码什么或者为代码添加什么来正确完成这一步。我看过的所有教程都给了我一些想法,并尝试让工作无济于事。

所以基本上我坐在轨道上生成的控制器名为opps_controller.rb和一个名为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

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

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

1 个答案:

答案 0 :(得分: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