未定义的方法`new'为零:NilClass

时间:2015-11-27 22:28:30

标签: ruby-on-rails ruby simple-form

此问题的名称已被使用,但这个问题完全不同。在 localhost:3000 / forums / new 中,它说:

未定义的方法`new'为零:NilClass

my forums_controller.rb:

 class ForumsController < ApplicationController
     def index
     end

     def forum
     end

     def new
         @forum = forum.new
     end

     def create
         @forum = forum.new (forum_params)
     end

     private

     def forum_params
         params.require(:forum).permit(:title, :text)
     end
 end

我的new.html.erb(在视图&gt;论坛下):

 <h1>New Forum</h1>

 = render 'forum'

 = link_to "Back", root_path

我在index&gt;论坛下的index.html.erb是完全空的。 我的应用程序控制器:

 class ApplicationController < ActionController::Base
   protect_from_forgery with: :exception
 end

_forum.html.erb:

 = simple_form_for @forum, html: { multipart: true } do |f|
   - if @forum.errors.any?
     #errors
       %h2
       = pluralize(@forum.errors.count, "error")
       perevented this Forum for saving
       %ul
         - @forum.errors.full_messages.each do |msg|
           %li= msg

   .forum-group
     = f.input :title, input_html { class: 'forum-control' }

   .forum-group
     = f.input :text, input_html { class: 'forum-control' }

 = f.button :submit,class: "btn btn-primary"

任何人都知道如何解决这个问题? 如果缺少任何代码,请发表评论,我将添加它。

1 个答案:

答案 0 :(得分:3)

我相信你想写类似

的东西
Forum.new

forum.new

其中forum显然是nil,只要您将forum定义为

def forum
end

我希望您在应用程序中定义了Forum模型