0

多くの映画を持つ監督のリストを作成しようとしています (各映画は 1 人の監督に属します):

class Director < ActiveRecord::Base
  attr_accessible :director

  has_many :movies
end

class Movies < ActiveRecord::Base
  attr_accessible :director_id, :title, :rating, :boxoffice

  belongs_to :director
end

私のスキーマは次のようになります。

ActiveRecord::Schema.define(:version => 20130312174246) do

  create_table "directors", :force => true do |t|
    t.string   "director"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  create_table "movies", :force => true do |t|
    t.integer  "director_id"
    t.string   "title"
    t.string   "rating"
    t.integer  "boxoffice"
    t.datetime "created_at",      :null => false
    t.datetime "updated_at",      :null => false
  end

end

ディレクタ コントローラに表示:

 def show
    @director = Director.find(params[:director_id])
    @movies = @director.movies
    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @director }
    end
  end

最終的には、監督をクリックして、その監督が監督したすべての映画と、その映画のそれぞれの評価と興行収入を確認したいと考えています。現在、次のエラーが表示されます: ID のないディレクターが見つかりませんでした

Railsは初めてなので、これを解決する方法がわかりません。これは私がやりたいことの正しい設定ですか? そうでない場合、どのように変更すればよいですか?ありがとう!

4

1 に答える 1

1

params[:id]これをparams[:director_id] 試してください:

@director = Director.find(params[:id])

監督が作成したすべてのムービーをネストされたルートで表示するには:

resources :directors do
  resources :movies
end

ですべてのアクションを機能させるMovieControllerには、ネストされたルート構文に従う必要があります。ここで見つけてください: http://guides.rubyonrails.org/routing.htmlまたは Web でゾンビ 2 のチュートリアル スライドのレールを見つけてください。

于 2013-03-12T21:08:04.620 に答える