У меня есть таблица клиента (с полями id, name) и таблица проекта (с полями id, name, client_id).
Модель моего проекта:
class Project < ActiveRecord::Base
belongs_to :client
end
Мне нужно отобразить в одном списке выбора имя клиента и имя проекта.
В следующем коде все работает хорошо , и я получаю в списке выбора имя клиента, объединенное с именем проекта (например: IBM PROJECT_DEMO)
select('hour','project_id',
@projects.collect{ |project|
[project.client.name+project.name,project.id]})
Проблема начинается, когда у меня есть проект без клиента , в этом случае я получаю ошибку
undefined method `name' for nil:NilClass
Я попытался вставить оператор if, чтобы проверить существование имени клиента
как это
select('hour','project_id',
@projects.collect{ |project|
[project.client.name if project.client+project.name,project.id]},
{:prompt => 'Select Project'})
но это не работает, и я получаю ошибку
Я буду очень признателен, если кто-нибудь может дать мне какое-то решение этой проблемы
Спасибо