2016-04-13 2 views
-3

не определен метод `карты«для ноля: NilClass, когда я создаю список, я получаю эту ошибку

<% end %> 

    <div class="form-group"> 
    <%= select_tag(:location_id,options_for_select(@locations), :prompt=>"select your location")%> 
    </div> 

    <div class="form-group"> 
    <%= select_tag(:category_id,options_for_select(@categories), :prompt=>"select a category")%> 

listing_controller.rb

def new 
    @listing = Listing.new 
    @categories = Category.all.map{|c| [c.name, c.id]} 

    @locations= Location.all.map{|c| [c.name, c.id]} 
end 


def edit 
    @categories = Category.all.map{|c| [c.name, c.id]} 
    @locations= Location.all.map{|c| [c.name, c.id]} 
end 


def create 
    @listing = Listing.new(listing_params) 

    @listing.category_id = params[:category_id] 
    @listing.location_id = params[:location_id] 

    @listing.user_id = current_user.id 


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

Кажется, что у вас нет экземпляров категорий или листингов. – Ilya

+0

На что вы получаете эту ошибку? – Pavan

+0

У меня исправлена ​​ошибка –

ответ

0

Неопределенного метод карта нулевого класса означает, что вы» re вызов метода на что-то, что ничто. Класс Nil не имеет этого метода.

отлаживать код, чтобы выяснить, что вызывает объект будет нулевым классом

0

Вы можете удалить эту ошибку, прежде чем присваивать значение для выбора опции тега, если его ноль или не ниже код

<div class="form-group"> 
    <% unless @locations.empty? %> 
    <%= select_tag(:location_id,options_for_select(@locations), :prompt=>"select your location")%> 
    <% end %> 
</div> 

<div class="form-group"> 
    <% unless @categories.empty? %> 
    <%= select_tag(:category_id,options_for_select(@categories), :prompt=>"select a category")%> 
    <% end %> 
Смежные вопросы