Lista rozwijana - dane z bazy

Witam wszystkich!

Jako, że dopiero zaczynam zabawe z railsami pojawiły sie pewne problemy :slight_smile:

Jest sobie tabelka o nazwie dokumenty z polem type, ktore odwzorowuje dziedziczenie (mozliwe wartosci to paszport, dowód osobisty, legitymacja, prawo jazdy itp). Jak wstawic do scaffolda wygenerowanego przez railsy liste rozwijana ktora bedzie pokazywała te dokumenty (czyli prawo jazdy, legitymacja itp…) i w zaleznosci od wyboru odpowiednio aktualizowała baze danych?

Z gory dzieki wam za odpowiedz :slight_smile:

jeszcze kod :

class DowodOsobisty < Dokument end
itd z innymi dokumentami…

a tabelka

create_table :dokuments do |table| table.column :nazwa, :string, :limit => 20 table.column :seria, :string, :limit => 20 table.column :type, :string, :limit => 20 end

  1. To nie powinno być w ten sposób zamodelowane. Wbrew pierwszej intuicji te byty mają ze sobą niewiele wspólnego. W rezultacie wspólna tabela będzie bardzo nadmiarowa. Stwórz niezależne modele. Jeśli będziesz potrzebował wskazać w innej tabeli na ogólny dokument, użyj polimorficznych asocjacji.

  2. Powinieneś używać wyłącznie angielskich identyfikatorów. W ogóle w programowaniu. Szczególnie w Rails.

  3. Selecta wypluwa się helperem select, np:

<%= form.select :province_id, Province::SELECT_LIST %>

Gdzie SELECT_LIST to lista dwuelementowych list [widoczna_nazwa, id], np.:

[code=ruby]class Province < ActiveRecord::Base

@@all = Province.find( :all ).sort
SELECT_LIST = @@all.map { |p| [p.name, p.id] }
end[/code]

Dzięki Ci wielkie za pomoc. :slight_smile: