RevisionsController中的NoMethodError #new / undefined方法`[]'为零:NilClass

时间:2012-08-11 23:37:18

标签: ruby-on-rails ruby

我正在尝试使用rails 3创建一个WIKI页面。我正在按照http://garrickvanburen.com/archive/how-to-build-a-wiki-with-ruby-on-rails-part-1/

的教程进行操作

我相信他的教程是在rails 2中,所以我不得不改变编码。我在第6节并且在app / views / revisions / new.html.erb中输入了编码。一旦我在localhost / revisions / new中加载服务器,我得到以下错误 -

RevisionsController#new

中的NoMethodError

未定义的方法`[]'为nil:NilClass

Rails.root:/ home / whitey7 / wiki 应用程序跟踪|框架跟踪|完整跟踪

app / controllers / revisions_controller.rb:30:在'new'

当我拉出revisions_controller文件并查看第30行时,根据教程中的内容,它似乎是正确的或正确的。其他一切似乎工作正常,但这。我似乎无法找到答案或如何解决这个问题。任何帮助或一些指导将不胜感激。代码低于revisions_controller文件中列出的代码。谢谢大家!!

  # GET /revisions/new
  # GET /revisions/new.json


def new
    @revision = Revision.new

    @revision.update_attribute('person_id', 
      Person.find_or_create_by_name(params[:person][:name]).id) **#Inputed from Tutorial.**

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @revision }
    end
  end

1 个答案:

答案 0 :(得分:1)

params [:person]未设置。如果您只想在这种情况下避免错误,请更改为:

unless params[:person].nil?
  @revision.update_attribute('person_id', 
    Person.find_or_create_by_name(params[:person][:name]).id)
end