2012-04-19 2 views
0
나는 특정 필요에 바로 사진과 더 categorie 여기 에 따라 이름 아무것도 관련 제품을 표시 할

는 무 컨트롤러는 무기 호 클래스 오류

class RelatedneedsController < ApplicationController 

    def index 
    @relatedneeds = RelatedNeed.all 
    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @relatedneeds } 
    end 
    end 

    def show 
    s1 = '@need.category.name' 
    s2 = '@relatedneed.category.name' 

    if s1.eql?(s2) 
     @relatedneed = relatedneed.find(params[:id]) 

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

    def get_name 
     @relatedneed.name 
    end 
end 

이 내 모델입니다

class Relatedneed 
    include Mongoid::Document 
    include Mongoid::Paperclip 

    mapping do 
    indexes :name 
    end 

    field :name, type: String 

    belongs_to :category 
    belongs_to :user 
end 

이이 show.haml 파일

%h1 
    %b= @need.name 

#container{:style => "width:1000px"} 
    #desc{:style => "height:400px;width:400px;float:left;"} 
     =image_tag @relatedneed.photo.url(:normal) 

인이 내 index.haml 파일

%h1= @relatedneed.get_name 

#container{:style => "width:1000px"} 
    #desc{:style => "background-color:#EEEEEE;height:400px;width:400px;float:left;"} 
    = link_to "Check Need", new_need_path 

자신의 누락 뭔가 내가 RelatedneedsController 번호 지수

정의되지 않은 메서드`키에서이 오류 NoMethodError을받을 경우 나도 몰라? ' 없음 : NilClass

답변

0

index.haml의 주소는 @relatedneed.get_name입니다. 단, 만 컨트롤러에 설정하면 @relatedneed이 아닙니다. 그것만큼 간단합니까?

또한 컨트롤러의 show 메소드는 나에게 적합하지 않습니다. 인스턴스 변수를 문자열 안에 넣었습니다! 먼저 모델을 통해 데이터베이스 쿼리로 인스턴스 변수를 설정해야합니다. get_name 메소드는 컨트롤러가 아닌 모델에 속한 것처럼 보입니다.

관련 문제