0

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:in `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
4

1 に答える 1

1

params[:person] が設定されていません。この場合のエラーを回避したいだけの場合は、次のように変更します。

unless params[:person].nil?
  @revision.update_attribute('person_id', 
    Person.find_or_create_by_name(params[:person][:name]).id)
end
于 2012-08-12T01:42:18.280 に答える