Добавить дополнительную информацию в список Rails Select? - PullRequest
1 голос
/ 07 августа 2010

В моем приложении Rails есть раскрывающийся список выбора в форме для создания новой записи.

<li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>

Это позволяет пользователю выбрать из списка имен геодезистов то, которое они хотят связать с делом, которое они создают.

Я хотел бы, чтобы название компании Surveyor было указано рядом с именем в скобках.

На данный момент код выглядит так:

<li>Appointed Company<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => (@kase.appointedsurveyor_id rescue "")} %></span></li>
<li>Appointed Surveyor<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>

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

Ассоциации заключаются в следующем:

class Company < ActiveRecord::Base
  has_many :kases
  has_many :people

class Person < ActiveRecord::Base
  has_many :kases # foreign key in join table
  belongs_to :company

Я также изменил вывод записей компании на их имена, а не на их идентификационные номера ».

def to_s; companyname; end

Заранее спасибо!

Спасибо

Danny

1 Ответ

1 голос
/ 09 августа 2010

Вы можете добавить метод к вашей модели Person, который возвращает строку, содержащую имя человека и компанию, в которой он / она работает:

def name_and_company
  return "#{name} [#{company.name}]"
end

Если вы не хотите, чтобы это было в вашей модели(поскольку это код, связанный с просмотром), вы можете вместо простого вызова

x.personname

внутри вызова Person.all.collect использовать что-то вроде

"#{name} [#{company.name}]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...