0

したがって、プロジェクトは多くのカテゴリを持つことができ、カテゴリはプロジェクトに属するというように、プロジェクトとカテゴリの関係があります。なんとか機能させましたが、レールサーバーを再起動しても機能しません。以下に示すコードは、レールサーバーの再起動前と再起動後のものなので、コードに関係があると思います...

したがって、モデルが必要なのか、コントローラーが必要なのか、フォームが必要なのかがわかりません。そのため、問題が発生している場所として、カテゴリ コントローラーから create メソッドを投稿しました。

  def create
    @project = Project.find(params[:project_id])
    @category = @project.categories.create(params[:category].merge(:user_id => current_user.id))
    if @category.save
      redirect_to project_tasks_path(@project.id), :flash => {:success => 'Created a Category! Now you can create tasks!'}
    else
      redirect_to :back, :flash => {:error => 'We could not create an category. You need to enter a name.'}
    end
  end

これは精神的な作成行で発生し、エラーがスローされます。

 RuntimeError in CategoriesController#create

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id

Rails.root: /home/adam/Documents/Aptana Studio 3 Workspace/StartPoint
Application Trace | Framework Trace | Full Trace

app/controllers/categories_controller.rb:14:in `create'

Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"qbJyilRiMtwOyPDq9HQFO4JME+TPkh/cCEEqPZPxGDw=",
 "category"=>{"category"=>"ffffffff"},
 "commit"=>"Create Category",
 "project_id"=>"2"}

これは、作成を押すとスローされます。アイデアはありますか、それとももっとコードを表示する必要がありますか?

4

1 に答える 1

2

を持っていないようですcurrent_userので、 に設定されていnilます。

.idonを呼び出すnilと、Rails でこのエラーが発生します。

アプリケーションで匿名アクセスが許可されていない場合は、問題があります。その場合は、次のようにする必要があります。

current_user ||= User.new

current_user常に新しい User インスタンスを初期化します。User.new は保存されていないインスタンスを作成するため、コードはまだ機能しません。

于 2012-09-10T17:34:34.903 に答える