Rails 3: Как мне создать опции в теге <select>из строк таблицы базы данных? - PullRequest
2 голосов
/ 11 августа 2011

Учитывая следующую форму:

<%= form_for(@ciudad) do |f| %>
  <% if @ciudad.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@ciudad.errors.count, "error") %> prohibited this ciudad from being saved:</h2>

      <ul>
        <% @ciudad.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :nombre %><br />
    <%= f.text_field :nombre %>
  </div>

  <div class="field">
    <%= f.label :departamento_id %><br />
    <%= f.select :departamento_id , :prompt => "Seleccione el municipio" %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Как бы я заполнил параметры для deparamento_id тега select из базы данных?

1 Ответ

7 голосов
/ 11 августа 2011

Самый простой способ сделать это - использовать f.collection_select вместо f.select.Предполагая, что у вас есть таблица / модель с именем Departamento с полем с именем nombre:

<%= f.collection_select :departamento_id, Departamento.all, :id, :nombre, :prompt => "Seleccione el municipio" %>

Подробнее об этом можно прочитать в официальных руководствах Rails здесь: http://guides.rubyonrails.org/form_helpers.html#option-tags-from-a-collection-of-arbitrary-objects

А в документации API: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

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