2011-09-14 7 views
1

StackOverflow 도움말, 당신은 저의 유일한 희망입니다.레일 3.1 비계에 대해 정의되지 않은 메소드`model_name '은 NilClass입니다.

나는 다음과 같은 오류가 발생하고 그게 나를 미치게한다. 1 호선 제기 /home/paul/rails_projects/recruits/app/views/players/_form.html.haml보기 플레이어 # 새로운

에서

NoMethodError :

정의되지 않은 메서드`MODEL_NAME '무기 호에 대한 : NilClass

추출 소스 (약 1 호선) :

1 : = form_for @player 할 | f를을 |

2 : -if @ player.errors.any?

3 #error_explanation

4 %의 H2 = "# {(@ player.errors.count, 복수형" "이 저장되는 것을 금지 플레이어 에러)}"템플릿 개재물

추적 : app/views/players/new.html.haml

Rails.root :/home/paul/rails_projects/recruits 응용 프로그램 추적 | 프레임 워크 추적 | 전체 추적

응용 프로그램/뷰/플레이어/_form.html.haml : 1 : _app_views_players__form_html_haml___279577567_106102840' app/views/players/new.html.haml:3:in _app_views_players_new_html_haml__860668925_106567710에서 ' 응용 프로그램/컨트롤러/players_controller.rb : 29 : 새로운`에서'

나는 이것이를 사용하여 만든 발판 발전기. 다른 지역에서는 잘 작동했지만 여기서는 분명히 아닙니다.

여기에 관련 파일이 있습니다 (scaffold 명령으로 생성 된 파일에 대한 유일한 변경 사항은 attr_accessable을 플레이어 모델에 추가하는 것이 었습니다).

모델/player.rb

class Player < ActiveRecord::Base 

    attr_accessible :first_name, :last_name, :scout_height, :scout_weight, 
    :scout_profile_url, :scout_star_rating, :scout_overall_ranking, 
    :scout_position_ranking, :scout_position, :espn_height, :espn_weight, 
    :espn_profile_url, :espn_star_rating, :espn_overall_ranking, 
    :espn_position_ranking, :espn_position, :rivals_height, :rivals_weight, 
    :rivals_profile_url, :rivals_star_rating, :rivals_overall_ranking, 
    :rivals_position_ranking, :rivals_position, :maxprep_height, :maxprep_weight, 
    :maxprep_profile_url, :maxprep_star_rating, :maxprep_overall_ranking, 
    :maxprep_position_ranking, :maxprep_position, :class, :school_commit, :loi_signed 

end 

컨트롤러/players_controller.rb

class PlayersController < ApplicationController 
    # GET /players 
    # GET /players.json 
    def index 
    @players = Player.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @players } 
    end 
    end 

    # GET /players/1 
    # GET /players/1.json 
    def show 
    @player = Player.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @player } 
    end 
    end 

    # GET /players/new 
    # GET /players/new.json 
    def new 
    @player = Player.new 

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

    # GET /players/1/edit 
    def edit 
    @player = Player.find(params[:id]) 
    end 

    # POST /players 
    # POST /players.json 
    def create 
    @player = Player.new(params[:player]) 

    respond_to do |format| 
     if @player.save 
     format.html { redirect_to @player, notice: 'Player was successfully created.' } 
     format.json { render json: @player, status: :created, location: @player } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @player.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /players/1 
    # PUT /players/1.json 
    def update 
    @player = Player.find(params[:id]) 

    respond_to do |format| 
     if @player.update_attributes(params[:player]) 
     format.html { redirect_to @player, notice: 'Player was successfully updated.' } 
     format.json { head :ok } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @player.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /players/1 
    # DELETE /players/1.json 
    def destroy 
    @player = Player.find(params[:id]) 
    @player.destroy 

    respond_to do |format| 
     format.html { redirect_to players_url } 
     format.json { head :ok } 
    end 
    end 
end 

보기/플레이어/new.html.haml

%h1 New player 

= render 'form' 

= link_to 'Back', players_path 

보기/플레이어/_form. html.haml

= form_for @player do |f| 
    -if @player.errors.any? 
    #error_explanation 
     %h2= "#{pluralize(@player.errors.count, "error")} prohibited this player from being saved:" 
     %ul 
     - @player.errors.full_messages.each do |msg| 
      %li= msg 

    .field 
    = f.label :first_name 
    = f.text_field :first_name 
    .field 
    = f.label :last_name 
    = f.text_field :last_name 
    .field 
    = f.label :scout_height 
    = f.number_field :scout_height 
    .field 
    = f.label :scout_weight 
    = f.number_field :scout_weight 
    .field 
    = f.label :scout_profile_url 
    = f.text_field :scout_profile_url 
    .field 
    = f.label :scout_star_rating 
    = f.number_field :scout_star_rating 
    .field 
    = f.label :scout_overall_ranking 
    = f.number_field :scout_overall_ranking 
    .field 
    = f.label :scout_position_ranking 
    = f.number_field :scout_position_ranking 
    .field 
    = f.label :scout_position 
    = f.text_field :scout_position 
    .field 
    = f.label :espn_height 
    = f.number_field :espn_height 
    .field 
    = f.label :espn_weight 
    = f.number_field :espn_weight 
    .field 
    = f.label :espn_profile_url 
    = f.text_field :espn_profile_url 
    .field 
    = f.label :espn_star_rating 
    = f.number_field :espn_star_rating 
    .field 
    = f.label :espn_overall_ranking 
    = f.number_field :espn_overall_ranking 
    .field 
    = f.label :espn_position_ranking 
    = f.number_field :espn_position_ranking 
    .field 
    = f.label :espn_position 
    = f.text_field :espn_position 
    .field 
    = f.label :rivals_height 
    = f.number_field :rivals_height 
    .field 
    = f.label :rivals_weight 
    = f.number_field :rivals_weight 
    .field 
    = f.label :rivals_profile_url 
    = f.text_field :rivals_profile_url 
    .field 
    = f.label :rivals_star_rating 
    = f.number_field :rivals_star_rating 
    .field 
    = f.label :rivals_overall_ranking 
    = f.number_field :rivals_overall_ranking 
    .field 
    = f.label :rivals_position_ranking 
    = f.number_field :rivals_position_ranking 
    .field 
    = f.label :rivals_position 
    = f.text_field :rivals_position 
    .field 
    = f.label :maxprep_height 
    = f.number_field :maxprep_height 
    .field 
    = f.label :maxprep_weight 
    = f.number_field :maxprep_weight 
    .field 
    = f.label :maxprep_profile_url 
    = f.text_field :maxprep_profile_url 
    .field 
    = f.label :maxprep_star_rating 
    = f.number_field :maxprep_star_rating 
    .field 
    = f.label :maxprep_overall_ranking 
    = f.number_field :maxprep_overall_ranking 
    .field 
    = f.label :maxprep_position_ranking 
    = f.number_field :maxprep_position_ranking 
    .field 
    = f.label :maxprep_position 
    = f.text_field :maxprep_position 
    .field 
    = f.label :class 
    = f.number_field :class 
    .field 
    = f.label :school_commit 
    = f.text_field :school_commit 
    .field 
    = f.label :loi_signed 
    = f.check_box :loi_signed 
    .actions 
    = f.submit 'Save' 

routes.rb

Recruits::Application.routes.draw do 

    resources :schools 
    resources :players 

    #get \"users\/show\" 

    root :to => "home#index" 

    devise_for :users 
    resources :users, :only => :show 
end 

답변

3

내가 여기 추측하고있어하지만 당신은 "클래스"라는 속성은 당신이 그것을 변경해야합니다 귀하의 플레이어 모델을 주었기 때문에 나는 그것을 믿지 : player_class 또는 뭔가. class는 예약어입니다. _form.html.erb 및 index.html.erb 및 show.html.erb 파일을 업데이트하여이 새 이름을 사용해야합니다.

+0

David 님, Player 모델 이름을 변경했습니다.이 문제를 해결하기 위해 몇 가지 다른 작업을 수행 했었지만이 작업으로 돌아가는 것은 효과가있는 것으로 보입니다. 그래서 나는 당신의 제안으로 인해 내 다른 작업을하지 않을 것이라고 확신합니다. –

관련 문제