2012-04-19 2 views
0

Я хочу, чтобы отобразить соответствующие продукты в определенной потребности, только изображение и имя ничего более в зависимости от категории здесь контроллерNil класс ошибки

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 

Я не знаю, если их что-то отсутствует, и я получаю эту ошибку NoMethodError в RelatedneedsController индексе #

не определен метод ключа `?» для ноля: NilClass

ответ

0

Ваш index.haml имеет @relatedneed.get_name, но вы не установили @relatedneed в свой контроллер, только @relatedneeds. Это так просто?

Кроме того, ваш метод show в контроллере не имеет для меня никакого смысла. Вы поместили переменные экземпляра внутри строк! Сначала необходимо установить переменные экземпляра с запросом базы данных с помощью модели. Ваш метод get_name выглядит так же, как и в модели, а не в контроллере.

Смежные вопросы