NoMethodError в Car # index - PullRequest
0 голосов
/ 17 мая 2011

Показывает app / views / car / index.html, где поднята строка # 3:

У вас есть нулевой объект, когда вы этого не ожидали! Возможно, вы ожидали экземпляр Array. Произошла ошибка при оценке nil.each Извлеченный источник (вокруг строки № 3):

1: <h2>Current List of Cars</h2>

2: <dl>

3: <% @cars.each do |car| %>

4: <dt><%= car.name %></dt>

5: <dd>

6: <%= car.description %><br />

car_controller.rb:

class CarController < ApplicationController
  def add
      @title = "Add a New Car"

    if request.post?
      @car = Car.new(params[:car])
      @car.user_id = User.logged_in(session).id
    if @car.save
        flash[:notice] = "Car #{@car.name} added!"
        redirect_to :controller => :car, :action => :index
      end
    end
    @cars = Car.find(:all)
  end

  def edit
  end

end

в чем проблема, я не понимаю

Новая ошибка

Синтаксическая ошибка в Car # index

Отображение app / views / car / index.html.erb, где поднята строка # 20:

ошибка компиляции C: / Пользователи / Jatinder / Проекты BitNami RubyStack / mercedes_mod 2 / app / views / car / index.html.erb: 20: синтаксическая ошибка, неожиданный kENSURE, ожидающий kEND C: / Пользователи / Jatinder / Проекты BitNami RubyStack / mercedes_mod 2 / app / views / car / index.html.erb: 22: синтаксическая ошибка, неожиданный конец $, ожидающий kEND Извлеченный источник (около строки № 20):

17: </dl>
18: 
19: <p><%= link_to "Add a Car", :controller => :car, :action => :add %></p>

Трассировка включения шаблона: app / views / car / index.html.erb

/ вид / автомобиль / index.html.erb

<h2>Current List of Cars</h2>
<dl>
<% @cars.each do |car| %>
  <dt><% @user.cars.each do |cars| unless @user.blank? %></dt>
  <dd>
    <%= car.description %><br />
    <%= link_to "Edit", 
          :controller => :car, 
          :action => :edit,
          :id => car.id %> |
    <%= link_to "Delete", 
          :controller => :car, 
          :action => :delete,
          :id => car.id %>
  </dd>
<% end %>
</dl>

<p><%= link_to "Add a Car", :controller => :car, :action => :add %></p>

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

NoMethodError in Car#add

Showing app/views/car/add.html.erb where line #2 raised:

undefined method `errors' for #<Array:0x57841b0>
Extracted source (around line #2):

1: <h1>Add a New Car</h1>
2: <%= error_messages_for :car %>
3: <% form_for :car do |f| %>
4:   <p>
5:     <%= f.label :name %>:

1 Ответ

1 голос
/ 17 мая 2011

Вы должны поместить назначение @cars в действие index.

def index
  @cars = @user ? @user.cars : Car.all
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...