2016-04-25 15 views
-3

現在、重要な顧客のためにウェブサイトを作成しており、今後の進展を妨げているロードブロッキングを実行しています。私たちはデータベーステーブル間の関係に取り組んでいましたが、テーブルの1つが上記の名前付きメソッドを認識していません。未定義のメソッド 'name' in nil:NilClass

organizers_controller.rb:

# GET /organizers.json 
def index 
    @organizers = Organizer.all 
end 

# GET /organizers/1 
# GET /organizers/1.json 
def show 
end 

# GET /organizers/new 
def new 
    @organizer = Organizer.new 
end 

# GET /organizers/1/edit 
    def edit 
end 

# POST /organizers 
# POST /organizers.json 
def create 
    @organizer = Organizer.new(organizer_params) 

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

# PATCH/PUT /organizers/1 
# PATCH/PUT /organizers/1.json 
def update 
    respond_to do |format| 
    if @organizer.update(organizer_params) 
     format.html { redirect_to @organizer, notice: 'Organizer was successfully updated.' } 
    format.json { render :show, status: :ok, location: @organizer } 
    else 
    format.html { render :edit } 
    format.json { render json: @organizer.errors, status: :unprocessable_entity } 
    end 
end 
end 

# DELETE /organizers/1 
# DELETE /organizers/1.json 
def destroy 
    @organizer.destroy 
    respond_to do |format| 
    format.html { redirect_to organizers_url, notice: 'Organizer was successfully destroyed.' } 
    format.json { head :no_content } 
end 
end 

private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_organizer 
    @organizer = Organizer.find(params[:id]) 
    end 

# Never trust parameters from the scary internet, only allow the white list through. 
def organizer_params 
    params.require(:organizer).permit(:name) 
end 
end 

show.html.erb:

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Title:</strong> 
    <%= @event.title %> 
    <strong>Organization</strong> 
    <%= @organizer.name %> 
</p> 

<%= link_to 'Edit', edit_event_path(@event) %> | 
<%= link_to 'Back', events_path %> 

関連のエラー:

undefined method `name' for nil:NilClass 

言い訳間隔の問題、コードここでは、コードですコードブロックに翻訳されませんでした

+0

'@ organizer'はnilなので、このエラーが発生しています。 – dp7

+0

エラーメッセージは正しいですか? '@ organizer'インスタンス変数が設定されているように見えますが、' @ event'インスタンス変数は設定されていないので、 ''未定義メソッド 'title'"を期待したいと思います。 –

+0

@eventを取得している場所。 –

答えて

0

Organizer.title行をコメントアウトすると、他のエラーが発生したかどうかを確認してください。正しい軌道に乗ります。また、コンソールに移動し、関係を混乱させる。あなたはそれを知るのが難しいので、関係を投稿していません。 event.organizer.nameのようなものは、ネッセキャシアかもしれません。

0

したがって、同僚との会話の後、私は自分の問題に対する答えを見つけました。不思議にも、それはとても簡単な答えでした。

<% @event.organizers.each do |organizer| %> 
    <%= organizer.name %> 
<% end %> 

それは多対多の関係やショーは@organizer変数へのアクセスを持っていなかったという事実だったという事実:私はちょうどに<% = @ organizer.name%>を変更する必要がありました。したがって、このループは正しい情報を表示するために必要でした。とにかく、ありがとう、お返事ありがとうございます。

関連する問題