Drop Down Box - Заполняется данными из другой таблицы в форме - Ruby on Rails - PullRequest
3 голосов
/ 02 ноября 2009

Я пытаюсь добавить возможность заметок к своей CRM, которую я создаю. Я использую аутентифицированную среду, где пользователи могут управлять своими потенциальными клиентами. Например, я регистрируюсь, я авторизуюсь, я могу вводить перспективы и просматривать их. Итак ... Я создал таблицу потенциальных клиентов и пользователей, и они все отлично работают. Сейчас я пытаюсь дать пользователям возможность сделать заметку и «прикрепить» ее к потенциальному клиенту. Итак ... Я создал таблицу заметок с колонками, заметки и перспективы. Пользователь может принять к сведению, где бы он ни извлекал эту форму, и моя цель - сделать так, чтобы имена их клиентов были доступны в раскрывающемся списке для присоединения к форме. До сих пор я создал объект в контроллере перспективы, который говорит следующее

def index
    @myprospects = current_user.prospects.find(params[:id])
  end

Я борюсь со следующим шагом, чтобы создать раскрывающийся список в файле view / notes / new.html.erb. Форма выглядит так:

<h1>New note</h1><hr/>

<% form_for(@note) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :note %><br />
    <%= f.text_area :note %>
  </p>
  <p>
    <%= f.label :prospect %><br />
    <%= f.text_field :prospect %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', notes_path %>

Как мне сопоставить

  <p>
    <%= f.label :prospect %><br />
    <%= f.text_field :prospect %>
  </p>

поле для отображения данных, которые я хочу? Я три дня в рельсах, так что говорите со мной, как будто мне 10 лет (10 лет, которые не знают рельсов).

1 Ответ

10 голосов
/ 03 ноября 2009

Вы ищете поле выбора.

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

Предполагая, что вы правильно установили отношение «многие к одному» между заметками и потенциальными клиентами, а столбец, содержащий имя потенциального клиента в таблице потенциальных клиентов, называется «имя», это будет делать именно то, что вы хотите:

<p>
  <%= f.label :prospect %><br />
  <%= f.collection_select :prospect_id, @myprospects, :id, :name, :prompt => "Select a prospect" %>
</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...