Четко определенная проблема маршрутизации Rails - неопределенный метод для Nil: NilClass - PullRequest
0 голосов
/ 21 мая 2010

Я работаю над этой проблемой некоторое время, но все еще не радуюсь.Это мой второй вопрос в этой общей области, потому что последний вопрос становился слишком длинным, и теперь он более четко определен.

Краткое описание проблемы:

Я загружаю страницу для своих клиентов и получаю сообщение об ошибке:

undefined method 'name' for Nil:NilClass

Мой код

#Link on views/users/show.html.erb:
<%= link_to "Customer Account", :action => "home", :controller => "customers", :id => @user.user_type_id %>

#Regular Route:
map.connect 'customers/home/:id', :controller => 'customers', :action => 'home'

#Rake Routes, first entry:
/customers/home/:id  :controller=>:"customers", :action=>"home"

#Customers Controller:
def home
  render :layout => 'home'
  @customer = Customer.find(params[:id])
  @user = @current_user_session.user
  flash[:error] = "Customer not found" and return unless @customer
  @jobs = @customer.jobs
end

#views/customers/home.html.erb:
<%= @customer.name %>

Я не имею ни малейшего представления, почему эта, казалось бы, четкая последовательностьСобытия приводят к NilClass.Поиск консоли для Customer.find (2) возвращает правильного клиента.Чего не хватает этому нубу?Большое спасибо.

1 Ответ

3 голосов
/ 21 мая 2010

Вы визуализируете представление перед тем, как установить @customer, поэтому оно равно нулю. Попробуйте следующее:

def home
  @customer = Customer.find(params[:id])
  @user = @current_user_session.user
  flash[:error] = "Customer not found" and return unless @customer
  @jobs = @customer.jobs
  render :layout => 'home'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...