Rails, как извлечь данные из модели, указанной в форме выбора? - PullRequest
0 голосов
/ 09 апреля 2020

Допустим, у меня есть эта форма выбора:

<%= form_with(model: task, local: true) do |form| %>

<%= form.select(:person_id, Person.all.collect {|c| [c.person_name, c.id]}, {prompt: "Select a person"}, {class: 'col-md-12'}) %>

В моем контроллере задач, в моем create def, я хотел бы иметь возможность получить person_name, но оказывается, что я не могу. Например, я могу получить идентификатор, выполнив @ task.person_id, но не могу сделать @ task.person_name. Как бы я этого достиг? Я думаю о возможностях options_for_select или collection_select, но я не совсем уверен.

У кого-нибудь есть идея? Спасибо:)

Ответы [ 3 ]

0 голосов
/ 09 апреля 2020

Возможно, вы можете получить доступ к имени человека с помощью

@task.person.person_name

или, если вы хотите получить имя человека из задачи,

добавьте его в task.rb

def person_name
  self.person.person_name if !self.person_id.nil?
end

тогда вы можете использовать @ task.person_name в вашем контроллере

0 голосов
/ 10 апреля 2020

Оказывается, я исправил это, выполнив это при создании def контроллера:

name = @task.person_id
@person = Person.find(name)
0 голосов
/ 09 апреля 2020

Что, если вы измените коллекцию для выбора, может помочь @autoComplete = Prom.select ('promname'). Collect {| p | p.promname}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...